我有这个简单的应用程序,我使用设置。 为此,我创建了自己的属性设置文件。 到现在为止还挺好。这很好用。设置在那里,我可以使用它们。
我试图能够在运行时更改这些设置。
从它的外观来看,这也很有效。在运行应用程序的用户下查看应用程序的user.config
,将保存设置。
但是,下次加载应用程序时,它似乎忽略了保存的设置并使用默认设置。
我可以再次更改设置并保存它们,结果相同。
user.config
正在更新,但旧的默认设置始终是加载时显示的。
我将设置加载到ListView中。从那里更改值,然后遍历ListView,再次保存设置。
这是我在ListView中加载设置的地方:( Properties.Main
是我创建的设置)
private void Settings_Load(object sender, EventArgs e)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
textBox1.Text = config.FilePath;
foreach (SettingsProperty Setting in Properties.Main.Default.Properties)
{
ListViewItem settingitem = new ListViewItem();
settingitem.Text = Setting.Name.ToString();
settingitem.SubItems.Add(Setting.DefaultValue.ToString());
listView1.Items.Add(settingitem);
}
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
}
这是我保存设置的地方。
private void button1_Click(object sender, EventArgs e)
{
try
{
foreach (ListViewItem setting in listView1.Items)
{
Properties.Main.Default[setting.Text] = setting.SubItems[1].Text; ;
Properties.Main.Default.Save();
}
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}
从我所看到的,设置正在user.config
文件中按预期保存,但不是下次加载的设置。
我得到的印象是,我需要做一些事情,以便应用程序不会每次都加载默认设置。
有什么想法吗?
答案 0 :(得分:0)
您是否尝试过ConfigurationManager.RefreshSection