C# 带计时器的标签闪烁
我试着让一些标签在点击按钮时闪烁。对于当前代码,第一次单击可以正常工作,之后每次单击的闪烁量只有它应该闪烁的一半(变为白色,变为黑色)。关于如何改进/解决这个问题,有什么想法吗?以下是我当前的代码:C# 带计时器的标签闪烁,c#,.net,winforms,events,timer,C#,.net,Winforms,Events,Timer,我试着让一些标签在点击按钮时闪烁。对于当前代码,第一次单击可以正常工作,之后每次单击的闪烁量只有它应该闪烁的一半(变为白色,变为黑色)。关于如何改进/解决这个问题,有什么想法吗?以下是我当前的代码: private int counter; System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); private void button1_Click_2(object sender, EventArgs e) {
private int counter;
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
private void button1_Click_2(object sender, EventArgs e)
{
//Labels start out black, then play a sequence
//of changing to white and back to black twice
lb1.BackColor = Color.White;
lb2.BackColor = Color.White;
counter = 0;
timer.Interval = 300;
timer.Tick += new EventHandler(TimerElapsed);
timer.Enabled = true;
timer.Start();
}
void TimerElapsed(object sender, EventArgs e)
{
if (counter ==2)
{
timer.Stop();
timer.Enabled = false;
counter = 0;
}
else
{
if (lb2.BackColor == Color.Black)
{
lb1.BackColor = Color.White;
lb2.BackColor = Color.White;
}
else
{
lb1.BackColor = Color.Black;
lb2.BackColor = Color.Black;
}
counter += 1;
}
}
您正在将事件处理程序添加到
计时器。在每个按钮上单击勾选
尝试移动行timer.Tick+=neweventhandler(timerecursed)代码>退出按钮1\u单击功能2
当您调用timer.Tick+=neweventhandler(timerecursed)时代码>将为勾选事件添加另一个处理程序。当您单击按钮时,它会导致触发多个timerecursed
,从而导致问题。通过移动timer.Tick+=neweventhandler(timerecursed)代码>在按钮1\u单击\u 2
功能外,您只需将时间重复
分配给事件一次