我正在尝试添加正常运行时间计数器,以便从我的应用程序启动时起,它会启动一个计时器,该计时器会递增第二个直到应用程序关闭或我故意停止它。
目前计时器计算第一秒然后停止。这可能是我不理解滴答功能?我假设我为计时器设置的间隔将刷新或循环tick子程序中的代码? (我可能大错了。)
我有计时器1,我将其设置为"Enabled"
,并将间隔设置为"1000"
一秒钟。
在我的Timer1_Tick Sub
我有这个:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Dim seconds, minutes, hours As Integer
If seconds = 60 Then
seconds = 0
minutes = minutes + 1
End If
If minutes = 60 Then
If seconds = 60 Then
seconds = 0
minutes = 0
hours = hours + 1
End If
End If
seconds = seconds + 1
Label44.Text = Format(hours, "00") & "." & Format(minutes, "00") & "." & Format(seconds, "00")
End Sub
在Form1_Load
我有Timer1.Start()
请你告诉我我错过了什么?感谢。
答案 0 :(得分:3)
对于我的应用程序中的正常运行时间,我只记录它的启动时间和日期,然后使用标签显示自记录时间以来的时间差异。它比一直运行时间要简单得多。
答案 1 :(得分:3)
给出的方法非常不准确,因为它们假设tick事件在指定的时间间隔内完全触发,并且不会发生。
tick事件应仅用于从更精确的时间测量更新标签。在下面的代码中使用了秒表。
Dim appruntime As Stopwatch = Stopwatch.StartNew
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Label1.Text = appruntime.Elapsed.ToString("d\ hh\:mm\:ss")
End Sub
答案 2 :(得分:1)
您需要在Form1
。
Public Class Form1
Private seconds, minutes, hours As Integer
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
If seconds = 60 Then
seconds = 0
minutes = minutes + 1
End If
If minutes = 60 Then
If seconds = 60 Then
seconds = 0
minutes = 0
hours = hours + 1
End If
End If
seconds = seconds + 1
Label44.Text = Format(hours, "00") & "." & Format(minutes, "00") & "." & Format(seconds, "00")
End Sub
End Class