2017-08-22 34 views
-1

我设置了需要在特定时间每天启用的计数器。例如,每天(下午3点)都会说。我想到的是一段代码。但它给了我,当它到达的时候说的参数是无效的,请帮我一个错误,每天在特定时间启用计数器

Private t As Integer = 0 

Private Sub Home_monitoring_tab_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     rs.FindAllControls(Me) 
     Execute() 
End Sub 

Private Sub Execute() 
     If DateTime.Now.ToString("HH:mm") = "15:00" Then 
      shift1_timer.Enabled = True 
     End If 
End Sub 

Private Sub shift1_timer_Tick(sender As Object, e As EventArgs) Handles shift1_timer.Tick 
     t += 1 
     Label14.Text = CStr(t) 
End Sub 
+0

你不需要转换成字符串来评价的时间。检查'DateTime'属性,你会看到有一个'Hour'和'Minutes'属性。但是,该代码不应该抛出任何错误 - 但它不会做你想要的。如果您刚好在15:00启动应用程序,计时器才会启用。请阅读[问]并参加[导览],也许张贴真实的代码。 – Plutonix

+0

只有在打开程序的时候,才会调用Execute()方法,所以如果时间并非完全是'15:00',那么当您运行程序时,它不会启动计时器,因此您可以将计时器在另一个持续运行的计时器中检查语句。 –

回答

0

试试这个,计时器添加到您的程序,并把它CheckTimer并更新你的代码是这样的:

Private t As Integer = 0 

Private Sub Home_monitoring_tab_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    rs.FindAllControls(Me) 
    CheckTimer.Interval = 1 
    CheckTimer.Start 
End Sub 

Private Sub CheckTimer_Tick(sender As Object, e As EventArgs) Handles CheckTimer.Tick 
    If DateTime.Now.ToString("HH:mm") = "15:00" Then 
     shift1_timer.Enabled = True 
    End If 
End Sub 

Private Sub shift1_timer_Tick(sender As Object, e As EventArgs) Handles shift1_timer.Tick 
    t += 1 
    Label14.Text = CStr(t) 
End Sub 

希望它能帮助:)

相关问题