如何使用应用程序配置文件(XXXApp.config文件)来保存用户设置?

daou101 2003-08-06 12:22:10
我编写了一个应用程序,在应用程序配置文件(XXXApp.config)添加了这样一个键
<add key="AutoLoad.Checked" value="False" />
这个键关联到一个CheckBox控件,在CheckedChanged事件中,我希望更改这个键值,这样下次程序启动时就是上次的设置。
我使用System.Configuration.ConfigurationSettings.AppSettings.Set("AutoLoad.Checked", AutoLoad.Checked.ToString());

注:AutoLoad是CheckBox控件的名字

报错:此键只读,不可以修改;

怎么解决这个问题?如何在应用程序配置文件保存用户设置?
...全文
140 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
smiletosky 2003-08-06
  • 打赏
  • 举报
回复
没见过这样用的,关注!
好运 2003-08-06
  • 打赏
  • 举报
回复
up
daou101 2003-08-06
  • 打赏
  • 举报
回复
多谢。
panyee 2003-08-06
  • 打赏
  • 举报
回复
不能吧

只能用xml方式修改
http://www.freevbcode.com/ShowCode.Asp?ID=5318
daou101 2003-08-06
  • 打赏
  • 举报
回复
用楼上的方法一定能够解决这个问题,如果采取这种方法,就最好不要在这个文件中修改,不如用一个INI文件来保存设置。

微软就没有提供其它方法,可以修改这个文件吗?应该有吧!
panyee 2003-08-06
  • 打赏
  • 举报
回复
用ConfigurationSettings.AppSettings应该是不能改配置文件的,它取得的类型有那方法, 但写值受到保护
我用c#采用xmldocument的方法改写配置文件内容代码如下, 供你参考


try
{
XmlDocument doc = new XmlDocument();
doc.Load("testasmx.exe.config");
XmlNode node = doc.DocumentElement.SelectSingleNode("appSettings");
node.SelectSingleNode("descendant::add[@key='ExOASqlString']").Attributes[1].Value = "hello";
doc.DocumentElement.SelectSingleNode("appSettings").InnerXml = node.InnerXml;
doc.Save("testasmx.exe.config");
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}

注:可执行文件名为testasmx.exe,配置文件名为testasmx.exe.config
里头一个ExOASqlString的属性把值改成hello

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧