这是我正在使用的代码:
private void SaveConfiguration() { if (txtUsername.Text != "" && txtPassword.Text != "") { ConfigurationManager.AppSettings["Username"] = txtUsername.Text; ConfigurationManager.AppSettings["Password"] = txtPassword.Text; MessageBox.Show("Su configuracion guardo exitosamente.", "Exito!"); this.Close(); } else { MessageBox.Show("Por favor lleno los campos.", "Error."); } }
现在,设置将保留下来,但是当我关闭应用程序并按F5键再次运行它时,这些值将恢复为在app.config文件中键入的值。有什么建议么?
我认为您应该调用Save方法
ConfigurationManager.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");
编辑
为了能够保存,您必须使用OpenExeConfiguration方法返回的配置对象
//Create the object Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //make changes config.AppSettings.Settings["Username"].Value = txtUsername.Text; config.AppSettings.Settings["Password"].Value = txtPassword.Text; //save to apply changes config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");
此处更多参考ConfigurationManager类