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

时间:2013-05-14 11:07:10

标签: c# winforms

我有内置计时器:

System.Windows.Forms.Timer timerLoop;

当启动计时器时,我希望(如果可能)将此计时器传递给整数值。

timerLoop.Start();

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

2 个答案:

答案 0 :(得分:6)

你可以这两种方式(可能更多):

通过创建继承基础Timer的新基础来扩展基础private class TimerExnteded : Timer { public int Value { get; set; } public TimerExnteded(int value) { Value = value; } }

Tick

并在Tag事件中使用该值。

使用Timer

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; } 属性
{{1}}

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

答案 1 :(得分:1)

你也可以使用闭包:

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