【问题标题】:Datetimepicker saving to my.settings and loading from itDatetimepicker 保存到 my.settings 并从中加载
【发布时间】:2014-09-04 12:05:38
【问题描述】:

别忘了我唯一需要的是时间而不是日期只是时间

我将 datetimepicker ("hh:mm") 中的值保存到 my.settings 中,如下所示。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    My.Settings.firstStart = DateTimePicker1.Value.TimeOfDay
    My.Settings.firstEnd = DateTimePicker2.Value.TimeOfDay

    My.Settings.secondStart = DateTimePicker3.Value.TimeOfDay
    My.Settings.secondEnd = DateTimePicker4.Value.TimeOfDay

    My.Settings.Save()

End Sub

之后,我将 mysettings 中的值与当前时间进行比较,如下所示

Private Sub timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer.Tick


    If My.Settings.firstStart <= currentTime AndAlso currentTime <= My.Settings.firstEnd Then
        Label2.Text = "First Class"
    ElseIf My.Settings.secondStart <= currentTime AndAlso currentTime <= My.Settings.secondEnd Then
        Label2.Text = "Second Class"
    Else
        Label2.Text = "Free Time"
    End If
End Sub

为什么即使当前时间在 ("Second Class") 范围内,label2.text 也不想更改

它会,但是当我重新打开应用程序时,它会显示“二等”并且 label2.text 不会改变,直到我下次重新打开应用程序,无论经过多少时间。

接下来如何将数据从 my.settings 加载到我的 datetimepicker。 不要忘记唯一重要的是时间而不是日期我根本不需要使用日期

【问题讨论】:

  • 你为什么用 ElseIf 来比较两个不同的东西?它们不是相互排斥的
  • 你有 Option Strict On 吗? (如果没有,你应该有)
  • @plutonix 还有更多条件,在此之后我只复制了其中两个
  • currentTime 如果您正在评估实际的当前时间,可能应该在 Timer 事件中设置。否则没有理由使用计时器。
  • @Plutonix 不敢相信我错过了。谢谢你的通知。如何将数据从设置加载到 DateTimePicker 只是另一件事。看看上面的代码。在表单加载事件上。请记住,我只需要时间而不是日期

标签: vb.net save loading datetimepicker


【解决方案1】:

currentTime的值放到TimerTick事件中

Private Sub timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer.Tick

    TextBox1.Text = Date.Now.ToString("hh:mm")
    Dim currentTime As TimeSpan = Date.Now.TimeOfDay

    If My.Settings.firstStart <= currentTime AndAlso currentTime <= My.Settings.firstEnd Then
        Label2.Text = "First Class"

    ElseIf My.Settings.secondStart <= currentTime AndAlso currentTime <= My.Settings.secondEnd Then
        Label2.Text = "Second Class"
    Else
        Label2.Text = "Free Time"
    End If
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-22
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多