【发布时间】:2023-03-09 16:40:01
【问题描述】:
我有以下代码,它在按键时开始将两个标签从表单顶部移动到底部,并在到达表单底部后停止。我已经使用计时器完成了它。这是代码
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
label1.Text = "Key Pressed: " + e.KeyChar;
//animate(sender, e);
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
Random random = new Random();
int X = random.Next(0, 1230);
int y = X;
label2.Location = new Point(X, 5);
label3.Location = new Point(X + 20, 5 + 20);
for (int i = 5; i <= 470; i++)
{
label2.Location = new Point(y, i);
label3.Location = new Point(y + 20, i + 20);
Thread.Sleep(1);
}
timer1.Stop();
}
现在在动画期间(从表单顶部到底部),当我按下键时,动画在到达底部后重新开始,即它完成了刻度事件,然后才重新开始或停止。
现在我想要的是,在标签从上到下移动的过程中,即在滴答声期间,如果我按下任何键(或任何特定键),计时器应该停止。
简而言之,在 Timer1_Tick 方法期间,我希望它在按键时立即停止。
我尝试过,但无法正常工作。我希望你们这里的人能帮助我解决这个问题,并希望你们尽早回复。感谢您的宝贵时间!
【问题讨论】: