我的app.config文件中有几个appSettings,默认值为:
<appSettings>
<add key="Foo" value="one"/>
<add key="Bar" value="two"/>
</appSettings>
我能够读取并将值放入TextBox和ComboBox
我有这段代码来保存对这两项所做的更改,但我所做的更改并没有保存到app.config文件本身,因此当我关闭程序并再次打开它时,值会回到默认值
Private Sub ButtonSaveSettings_Click(sender As Object, e As EventArgs) Handles ButtonSaveSettings.Click
Dim settings = System.Configuration.ConfigurationManager.AppSettings
settings.Set("Foo", TextBoxFoo.Text)
settings.Set("Bar", ComboBoxBar.SelectedItem.ToString)
End Sub
我需要做些什么才能让更新的值继续存在于app.config文件中?
(编辑:副本上的答案不是针对VB的,也没有解决这个问题。)
答案 0 :(得分:4)
另一种方法是使用
My.Settings.Save()
在ButtonSaveSettings.Click事件中。否则,设置将无法保持
答案 1 :(得分:1)
我不需要通过将app.config文件更改为此来使用ConfirgurationManager(使用解决方案资源管理器 - &gt;我的项目 - &gt;设置)
<userSettings>
<MyProject.My.MySettings>
<setting name="Foo" serializeAs="String">
<value>one</value>
</setting>
<setting name="Bar" serializeAs="String">
<value>two</value>
</setting>
</MyProject.My.MySettings>
</userSettings>
我能够使用此代码保存设置的更新值
Private Sub ButtonSaveSettings_Click(sender As Object, e As EventArgs) Handles ButtonSaveSettings.Click
My.Settings.Foo = TextBoxFoo.Text
My.Settings.Bar = ComboBoxBar.SelectedItem.ToString
End Sub
答案 2 :(得分:0)
以上选项用于设置应用程序设置键。 我遇到了同样的问题,并使用以下代码解决了该问题
Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
config.AppSettings.Settings("yourKeyName").Value = YourNewValue
config.Save(ConfigurationSaveMode.Modified)
ConfigurationManager.RefreshSection("appSettings")
保存更改非常重要!!! 如果需要立即使用更新的值,则刷新是可选的(RefreshSection)