表单上的计时器有问题。我已从属性中启用它并设置间隔值5000.在tick事件中,我想关闭当前表单并打开form1,但它不起作用。当前表单关闭,form1每5秒打开一次,不仅一次。我该怎么办?提前谢谢!
这是刻度事件:
private void timer1_Tick(object sender, EventArgs e)
{
this.Hide();
Form1 frm = new Form1();
frm.ShowDialog();
timer1.Enabled = false;
}
答案 0 :(得分:3)
frm.ShowDialog();
是一个阻止调用,因此在新表单关闭之前,下一行不会被执行。确保从禁用计时器开始:
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
this.Hide();
Form1 frm = new Form1();
frm.ShowDialog();
}
答案 1 :(得分:1)
您需要在调用ShowDialog
之前禁用计时器,因此请将timer1.Enabled = false;
移至第一行。另外,我建议您添加frm.Closed
事件,以便在关闭第二个表单后关闭主表单:这就是您想要的:
timer1.Enabled = false;
Hide();
Form1 frm = new Form1();
frm.Closed += (s, args) => Close();
frm.ShowDialog();