vb.net - 不使用计时器功能的 Visual Basic 上的秒表
问题描述
我正在尝试使用 Visual basic 创建一个秒表,但我必须在不使用计时器功能的情况下这样做,而是使用循环来制作它。当我单击停止按钮时,秒表标签上的时间应该以圈数的形式转移到列表框中(我还没有走那么远)。但我认为要让秒表真正开始滴答作响,我应该使用 4 个嵌套循环,持续一毫秒、一秒、一分钟、一小时,但我不知道该怎么做。任何帮助都会很棒。下面是我到目前为止所拥有的,但我没有使用 4 个嵌套循环,因为我不知道如何放入它。
Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
System.Threading.Thread.Sleep(1)
Application.DoEvents()
Dim Milliseconds, Seconds, Minutes, Hours As New Integer
For Miliseconds = 1 To 1000
If Miliseconds = 1000 Then
Seconds += 1
End If
Next
For Seconds = 1 To 59
If Seconds = 60 Then
Minutes += 1
End If
Next
For Minutes = 1 To 59
If Minutes = 60 Then
Hours += 1
End If
Next
For Hours = 1 To 23
lblRacingTimer.Text = Hours & "" & ":" & "" & Minutes & "" & ":" & "" & Seconds & "" & ":" & "" & Milliseconds & "" & ":" & "" & ""
Next
解决方案
这是一个开始的实现,您需要添加取消和其他功能。您可以使用 timeSpan 获取经过的小时/分钟/秒/毫秒并正确格式化:
Private Sub Stopwatch(Seconds As Integer)
Dim startTime As DateTime
Dim endTime As DateTime
Dim currentTime As DateTime
Dim timeSpan As TimeSpan
startTime = DateTime.Now
endTime = startTime.AddSeconds(Seconds)
currentTime = startTime
Do While currentTime < endTime
currentTime = DateTime.Now
timeSpan = currentTime - startTime
Loop
End Sub
这将使秒表运行 12 小时:
Stopwatch(43200)
推荐阅读
- javascript - 试图弄清楚如何使用 createTextNode 创建链接
- c - 即使 pid 错误,PsLookupProcessByProcessId 也会返回 STATUS_SUCCESS
- c++ - 如何为不同的向量指针集合释放内存
- excel - 是否有一种技术可以在将模板复制并粘贴到 SAME 工作表上的新位置时更新 VBA 语句?
- javascript - 解构函数调用
- python - BeautifulSoup(bs4)没有使用 find_all 或 select 或 select_one 获取元素
- github - 远程 -v 没有返回有关 git 存储库的任何信息
- python - 无法将 SQL 查询转换为 django
- xaml - Xamarin Hot Reload 确实...在进行更改时完全没有
- vba - 内容控制无法识别内容