【问题标题】:Saving a setting to MySettings and exiting the program isn't working将设置保存到 MySettings 并退出程序不起作用
【发布时间】:2020-01-17 14:36:10
【问题描述】:

我在将设置保存到“我的项目”然后使用“结束”语句退出程序时遇到问题。如果我保存设置但不执行 end 语句,一切正常。如果我保存设置然后执行“结束”,则不会保存设置。下面是一些说明问题的代码:

公开课表1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'reads the last setting correctly
    TextBox1.Text = My.Settings.MySetting
End Sub

Private Sub btnWrite_Click(sender As Object, e As EventArgs) Handles btnWrite.Click
    'write value, don't exit; works
    My.Settings.MySetting = TextBox1.Text
End Sub

Private Sub btnWriteEnd_Click(sender As Object, e As EventArgs) Handles btnWriteEnd.Click
    'write value and end; fails
    My.Settings.MySetting = TextBox1.Text
    End
End Sub

结束类

当我执行代码时,My.Settings.MySetting 中最后的内容会出现在 TextBox1 中。如果我更改文本框中的文本并单击“写入”按钮并通过单击“X”手动退出程序,当我再次执行程序时,新文本会显示正确更改。如果我更改文本并通过单击“WriteEnd”以编程方式退出,则更改后的设置文本不会写入“MySetting”。

我做错了什么?

谢谢

【问题讨论】:

  • 我猜你需要将My.Settings.Save() 添加到点击处理程序中。顺便说一句,我怀疑调用End 会立即终止应用程序,并且可能无法释放内存并正确关闭文件。尝试调用Application.Exit 可能会更好,因为这应该与垃圾收集等一起完成上述操作。
  • 删除 End 关键字.... Have 在这里很好地阅读。你可以做的就是打电话给Close...

标签: vb.net


【解决方案1】:

默认设置会在关机时自动保存,所以一般不需要调用SaveEnd 绝对是问题所在。永远不要使用End。在启动表格上致电Close 或致电Application.Exit。我将End 比作一个保镖抓住某人的脖子然后把他们扔出去,把他们的饮料洒在每个人身上,把他们的夹克留在后面,而不是让他们自己离开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    相关资源
    最近更新 更多