【发布时间】:2014-08-06 17:59:31
【问题描述】:
我遇到的问题是项目结束后我的设置似乎没有保存。
我的项目由 FrmMain 和 FrmSettings 组成
代码如下:
FrmMain:设置应该在主窗体加载时加载
Private Sub FrmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'//Load Settings\\
My.Settings.Reload()
FrmSettings.settingsTXTsearch.Text = My.Settings.SettingSearchTerm
'\\Load Settings//
End Sub
框架设置:
Private Sub SettingsButtonApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SettingsButtonApply.Click
My.Settings.SettingSearchTerm = settingsTXTsearch.Text
End Sub
我还添加了一个按钮,显示 My.Settings.SettingsSearchTerm 的值是什么,并且它被正确存储,但是一旦项目结束,该值就不会被保存。 (使用 me.close() 和 END)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(My.Settings.SettingSearchTerm)
End Sub
如果您需要我提供更多信息或代码示例,请告诉我。
【问题讨论】:
-
注意:Save My.Settings on Shutdown 已在 Application 下启用。
-
我的猜测是您使用
End会导致设置无法保存,因为它会突然终止应用程序。仅在主窗体上使用Me.Close()应该会终止应用程序,因此请尝试删除End调用,看看是否有帮助。 -
是应用程序设置还是用户设置?
-
正如马克所说,摆脱
End。它永远不应该在 VB.NET 中使用,无论它是否是您的问题的原因。在启动表单或最后一个表单上调用Close将退出应用程序,具体取决于您的项目配置,或者您可以随时随地调用Application.Exit。我将End比作夜总会的保镖,抓住某人的脖子,然后将他们扔出去,而他们将饮料洒在附近的其他人身上,他们踢腿尖叫,而其他选项则要求顾客离开,以便他们可以喝完酒,放下杯子,安静地走出去。 -
这似乎已经成功了,感谢 cmets!
标签: vb.net save settings loading my.settings