我有winforms内置计时器:
System.Windows.Forms.Timer timerLoop;
当启动计时器时,我希望(如果可能)将此计时器传递给整数值。
timerLoop.Start();
到目前为止,我只创建了一个通用变量,计时器可以在启动计时器之前读取并更新此变量。
答案 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);