C#窗体中的定时器控件

时间:2014-07-21 21:43:36

标签: c# winforms visual-studio-2010 timer

我是Windows窗体的初学者(visual studio 2010),想知道有没有办法在任何时刻获得计时器的价值? 对于初学者我想让我们说在一个文本框中显示一个计时器的值,例如,如果我的计时器是0到100,我想在文本框中一直显示这些值0到100。

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

2 个答案:

答案 0 :(得分:0)

听起来你想要一个Stopwatch,如comment中提到的那样。

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

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

答案 1 :(得分:0)

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

  1. System.Windows.Forms.Timer
    • 您需要编写一个事件处理程序,只要计时器滴答,就会执行该事件处理程序。此计时器必须托管在表单上。
  2. System.Threading.Timer
    • 您需要指定一个在计时器滴答时执行的回调委托。这不需要运行表单。
  3. System.Diagnostics.Stopwatch
    • 这是一个可以启动和停止的类,可以告诉你自启动以来经过的时间。
  4. 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