计时器在停止或禁用后不会停止
我在窗体上有一个计时器问题。我已经从属性中启用它,并设置间隔值5000.在tick事件中,我想关闭当前表单并打开form1,但它不起作用。当前窗体关闭,form1每5秒打开一次,不仅一次。我该怎么办?先谢谢你!计时器在停止或禁用后不会停止
这是Tick事件:
private void timer1_Tick(object sender, EventArgs e)
{
this.Hide();
Form1 frm = new Form1();
frm.ShowDialog();
timer1.Enabled = false;
}
您需要调用ShowDialog
前禁用定时器,使移动timer1.Enabled = false;
到第一线。此外,我建议你添加frm.Closed
事件,以便您关闭第二种形式后,主窗体将关闭:这是你想要什么:你显示对话框之前
timer1.Enabled = false;
Hide();
Form1 frm = new Form1();
frm.Closed += (s, args) => Close();
frm.ShowDialog();
它工作,非常感谢你!并且对于这个建议。 – Elena
@Elena欢迎您。 –
frm.ShowDialog();
是一个阻塞调用,因此下一行不会得到执行,直到新的形式被关闭。确保您通过禁用计时器开始:
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
this.Hide();
Form1 frm = new Form1();
frm.ShowDialog();
}
它的工作原理,谢谢! – Elena
禁用计时器。 –