我正在尝试创建一个非常简单的程序,基本上是一个计时器。
我有三组标签,lbl_seconds
,lbl_minutes
和lbl_hours
。
这些标签的默认值为00:00
,我希望计时器能够为每个标签更改该标签。我用谷歌搜索了这个,但我似乎找不到任何好的信息。
我需要三个独立的计时器吗?我还注意到计时器有自己的tick事件处理程序。我想这就是我需要更改标签的值。该怎么做?
答案 0 :(得分:5)
以下是此
的示例Dim timercount As Integer = 60 'The number of seconds
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Timer1.Interval = 1000 'The number of miliseconds in a second
Timer1.Enabled = True 'Start the timer
End Sub
Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click
Timer1.Enabled = False 'Stop the timer
timercount = 60 'Reset to 60 seconds
lblOutput.Text = timercount.ToString() 'Reset the output display to 60
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
lblOutput.Text = timercount.ToString() 'show the countdown in the label
If timercount = 0 Then 'Check to see if it has reached 0, if yes then stop timer and display done
Timer1.Enabled = False
lblOutput.Text = "Done"
Else 'If timercount is higher then 0 then subtract one from it
timercount -= 1
End If
End Sub
答案 1 :(得分:2)
我认为你需要这种东西
Public Function GetTime(Time as Integer) As String
Dim Hrs As Integer 'number of hours '
Dim Min As Integer 'number of Minutes '
Dim Sec As Integer 'number of Sec '
'Seconds'
Sec = Time Mod 60
'Minutes'
Min = ((Time - Sec) / 60) Mod 60
'Hours'
Hrs = ((Time - (Sec + (Min * 60))) / 3600) Mod 60
Return Format(Hrs, "00") & ":" & Format(Min, "00") & ":" & Format(Sec, "00")
End Function
您要传递标签文字上显示的时间(以秒为单位),时间将根据您的喜好进行格式化。
例如
lblTime.Text = GetTime(90)
这将在标签上显示00:01:30
。
作为参考,您可以看到我前一段时间在this project上提交的FreeVBCode。唯一需要注意的是项目是在VB6中。您应该能够在Visual Studio中打开它。
答案 2 :(得分:0)
使用一个计时器和标签的事件子更改值。
你需要一个计时器和三个计数器秒,分钟和小时。
计算分钟数,然后以模数分钟/ 60为单位,如果返回0则开始计算分钟数。 模数分钟/ 60,如果返回0则开始计算小时数。
答案 3 :(得分:0)
通过添加计时器开始。无论你喜欢什么,都可以调用它,在这个例子中,我将它保存为Timer1。添加标签并将文本设置为:00:00。
在设置类后的代码中(通常是Public Class Form1)将变量设为秒表:Dim stopwatch As New Stopwatch
在计时器刻度事件代码中,输入以下内容:(请注意我的00:00标签名为Label1)
Label1.Text = String.Format("{0}:{1}:{2}", watch.Elapsed.Hours.ToString("00"), watch.Elapsed.Minutes.ToString("00"), watch.Elapsed.Seconds.ToString("00"))