c# windows窗体中的定时器控件

本文关键字:定时器 控件 windows 窗体 | 更新日期: 2023-09-27 18:14:15

我是windows窗体(visual studio 2010)的初学者,想知道是否有任何方法可以在任何时刻获得计时器的值?对于初学者来说,我想在文本框中显示计时器的值,例如,如果我的计时器从0到100,我想在文本框中一直显示这些值0到100。

其次,是否有一个计时器变量,可以给出我的计时器自启动以来滴答的次数?

c# windows窗体中的定时器控件

听起来你想要一个Stopwatch,正如评论中提到的。

你可以使用Start命令,每当你启动Timer(如果你发现你甚至还需要),然后检查Elapsed,当你想知道多久已经过去了,例如在Timer.Tick事件。

至于你的第二个问题,你需要一个私有字段来跟踪你的滴答数,但这很容易。只要在每一次滴答上增加数字,然后忘记它。没什么大不了的

有多种方法可以解决你的问题,部分原因是它是如此开放。

  1. System.Windows.Forms.Timer
      你需要编写一个事件处理程序,它将在计时器滴答时执行。
  2. System.Threading.Timer
    • 你需要指定一个回调委托,当计时器滴答时执行。它不需要表单来运行。
  3. System.Diagnostics.Stopwatch
    • 这是一个可以启动和停止的类,可以告诉你从它启动以来经过的时间。

System.Threading.Timer示例制作一个简单的计数器

Private t As System.Threading.Timer
Private counter As Long = 0
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    t = New System.Threading.Timer(Sub() counter += 1)
    t.Change(1000, 1000) ' 1000 (ms): start after 1 second, 1000 (ms): 1 second interval
End Sub
Public ReadOnly Property Counts As Long
    Get
        Return counter
    End Get
End Property
Public Sub ResetCounter()
    t.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite)
    counter = 0
    t.Change(1000, 1000)
End Sub