vb.net 日期时间选择器没有从我的设置中获取值



我有这段代码来保存datetimepicker1的值:

Private Sub DateTimePicker1_Validating(sender As Object, e As EventArgs) _
Handles DateTimePicker1.Validating
My.Settings.dt1value= DateTimePicker1.Value.ToString
MsgBox("before save")
My.Settings.Save()
MsgBox("after save")
End Sub

看起来它节省了My.Settings值(来自消息框 1,2(

然后,当关闭应用程序并再次运行它时;它不会将My.Settings.dt1value加载到DateTimePicker1

加载代码为:

Private Sub main_Shown(sender As Object, e As EventArgs) Handles Me.Shown
DateTimePicker1.Value = Convert.ToDateTime(My.Settings.dt1value)
End Sub

其他控件(如Textbox1(可以正确保存和加载,但仅用于DateTimePicker不起作用。

我试图从Handles Me.Shown更改为Handles Me.Load但同样的问题。

我还有一个问题

当我在窗口中部署应用程序和设置时,My.Setting.Save()不适用于所有控件。

我读过其他类似的帖子并试图关注它们,但没有任何帮助。

任何提示赞赏,

提前谢谢。

首先检查值是否被保存。用

MsgBox(My.Settings.dt1value)

而不是

MsgBox("after save").

这将确保保存值。

MsgBox(

"保存前"(和MsgBox("保存后"(在这里没有任何用

但从您的代码片段来看,似乎值正在被保存。 在事件Load表单中,编写下面提到的代码并检查输出:

string DatePattern = "dd/MM/yyyy HH:mm:ss"; 
DateTime ConvertedDateTime; 
DateTimePicker1.Value = DateTime.TryParseExact(My.Settings.dt1value, DatePattern , null, DateTimeStyles.None, out ConvertedDateTime))

编辑:关于你的第二个问题

这是因为每当您以任何方式更新或修改应用程序时,My.Settings(内置设置文件(都会被刷新并生成一个新文件。我建议您将配置文件保存在单独的外部文件中。不在"我的设置"中

最新更新