这是我第一次使用计时器,所以可能我做错了。
我的代码是这样的:
private void timer1_Tick(object sender, EventArgs e)
{
button2.PerformClick();
}
private void button2_Click(object sender, EventArgs e)
{
// random code here
timer1.Interval = 5000;
timer1.Start();
timer1_Tick(null,null);
}
我要执行的操作是:执行随机代码,然后等待计时器间隔并执行“滴答”(将再次在按钮中进行“单击”,再次执行相同的操作),并永远重复一次。
抱歉,这是一个容易犯的错误,我从此开始,不知道我在做什么错。
谢谢您阅读我!:D
您无需手动调用Timer事件(适用于各种计时器)。
您设置其事件处理程序方法,设置时间间隔并启动它。当
需要调用Tick
事件时,基础框架将调用您的事件。
因此,您需要将随机代码放在可以从Tick
事件和按钮单击事件调用的子代码中。另外,您应该考虑阻止计时器的进一步激活。您可以禁用按钮,并在完成随机代码且条件为真后停止计时器并重新启用按钮。
private void button2_Click(object sender, EventArgs e)
{
stopTheTimer = false;
YourCommonMethod();
button2.Enabled = false;
timer1.Tick += timer1_Tick
timer1.Interval = 5000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
YourCommonMethod();
}
private void YourCommonMethod()
{
// execute your 'random' code here
if(stopTheTimer)
{
timer1.Stop();
timer1.Tick -= timer1_Tick; // disconnect the event handler
button2.Enabled = true;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句