【问题标题】:Timer Control in C# windows FormC# windows窗体中的定时器控件
【发布时间】:2014-07-21 21:43:35
【问题描述】:

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

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

【问题讨论】:

  • 听起来你最好使用Stopwatch 类。如果需要,您可以将它与计时器一起使用,只需在计时器触发时将其重置。
  • 我很想在这里支持上述 cmets,但如果 LarsTech 错了,我们很乐意看到您尝试和研究的一些细节。当我们知道您已经尝试过什么后,我们会更快地解决您的问题,然后让我们猜测并且您告诉我们它不起作用。

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


【解决方案1】:

听起来您想要Stopwatch,正如comment 中提到的那样。

您可以在启动Timer 时使用Start 命令(如果您发现仍然需要它),然后在您想知道已经过去了多长时间时检查Elapsed,例如在@987654327 @事件。

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

【讨论】:

  • 第一个问题是的,我需要计时器和秒表并行工作,第二个问题,我认为这是基本的东西,所以可能有一个内置函数在计时器中...
【解决方案2】:

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

  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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多