我有这段代码来保存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(内置设置文件(都会被刷新并生成一个新文件。我建议您将配置文件保存在单独的外部文件中。不在"我的设置"中