【问题标题】:My.Settings wont save when application closedMy.Settings 应用程序关闭时不会保存
【发布时间】: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


【解决方案1】:

从表单关闭事件中删除 END 命令似乎已经解决了这些问题。感谢原帖中的cmets。

代码已删除:

Private Sub Main_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    Me.Close()
    End
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    相关资源
    最近更新 更多