my.settings.myVariable有时不粘,即。间歇性



Windows 10 64位,VB.NET 2017

我有一个文本框,我想保持它的价值。我输入20,通常在下次启动程序时它会一直存在。但有时它是空白的。中没有任何内容代码更改了它。我正在调试代码的另一部分。有时我会单步执行并编辑代码。有时我会切换到F5来结束这个程序。通常情况下,20会持续存在。

在项目>道具>设置中,它是一个用户变量,字符串,名为:TextBox_OD_log10_gain(与它设置的文本框同名(

这是启动时加载文本框的位置。。。。。。。。。。。。。

Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
application.DoEvents
TextBox_OD_log10_gain.text = my.settings.TextBox_OD_log10_gain
End Sub

这是唯一设置文本框的地方。。。。。。。。。。。。。。。

Private Sub MainForm_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
my.settings.TextBox_OD_log10_gain = TextBox_OD_log10_gain.text 
My.Settings.Save()
End Sub

下面的"Alessandro Mandelli"表明问题是.NET Framework的故障。这是真的吗??我应该放弃我的设置,用另一种方法吗?

当您按下Shift+F5终止调试会话时,您可能会立即在程序当前执行的位置结束程序,并且它永远不会触发或处理FormClosed事件,这反过来意味着您的设置永远不会保存。您可能应该在调试完成后关闭窗体本身,这样它就有机会执行您指定的任何其他保存或清理,而不是从代码外突然结束。

我要放弃我的设置。太不可靠了。没有像样的例子或医生。我的一些设置是固定的,其他设置则不然。

我的答案是回到我从未遇到过问题的"GetSetting"。此外,GetSetting大约需要一半的时间进行编码。

最新更新