我有这些代码:
string theme = ConfigurationManager.AppSettings["Theme"];
private void ChangeTheme(string Name)
{
if(Name=="Light")
{
Form1.ActiveForm.BackColor = System.Drawing.Color.White;
Form.ActiveForm.ForeColor = System.Drawing.Color.Black;
}
if (Name == "Dark")
{
Form1.ActiveForm.BackColor = System.Drawing.Color.Black;
Form.ActiveForm.ForeColor = System.Drawing.Color.DarkOrange;
}
Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
cfg.AppSettings.Settings["Theme"].Value = Name;
cfg.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
我的app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Volume" value="7"/>
<add key="Keyval" value="X"/>
<add key="Theme" value="Light"/>
</appSettings>
</configuration>
基本上,当我按下单选按钮时,它会更改主题并将字符串发送到changetheme(),但它不会在app.config中更新。
答案 0 :(得分:0)
你是在调试中运行吗?
可能你看错了文件。调试visual studio时使用bin \ Debug中的配置文件,因此它不会从解决方案中更新App.config。
答案 1 :(得分:0)
我不使用==进行比较,而是使用字符串等于方法:
Name.Equals("Light")
虽然我敢打赌,这不是问题,但这是一种很好的做法,也许你很幸运,这就是问题所在。