将整数传递给 WinForms 应用程序中的计时器

本文关键字:应用程序 计时器 WinForms 整数 | 更新日期: 2023-09-27 18:13:21

我在计时器中内置了我的 winforms:

System.Windows.Forms.Timer timerLoop;

当计时器启动时,我希望(如果可能(向这个计时器传递一个整数值。

timerLoop.Start();

到目前为止,我只创建了一个通用变量,计时器可以在启动计时器之前读取和更新此变量。

将整数传递给 WinForms 应用程序中的计时器

您可以通过两种方式(也许更多(执行此操作:

通过创建继承基本Timer的新来扩展它:

private class TimerExnteded : Timer
{
    public int Value { get; set; }
    public TimerExnteded(int value)
    {
        Value = value;
    }
}

并在事件中使用该值Tick

使用Timer Tag属性

Timer t = new Timer();
 t.Tag = 5;
 t.Start();
 //event
 private void t_Tick(object sender, EventArgs e)
 {
     var timer = sender as Timer;
     var value = (timer.Tag as int?) ?? 0; 
     value++;
     timer.Tag = value;
 }

第二种方法使用值的装箱/拆箱。

你也可以使用闭包:

t.Tick += (s, a) => OnTick(YourValue);