Form.ShowDialog在循环中运行时只打开一次

时间:2012-05-23 20:31:57

标签: c# .net winforms showdialog

我有一个Form1,当我运行一个循环时,我需要打开另一个表单(Form2)。 问题是,当我运行循环时,它仅首次显示Form2,然后Form2自动打开和关闭。

为了探究它,我写了这个简单的代码,但它不起作用:

Form2 reg = new Form2();
while (true) 
{
    reg.ShowDialog();
}

在Form2中:

private void button1_Click(object sender, EventArgs e)
{
    Application.Exit();
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我认为您正在使用button1关闭Form2。这执行button1_click,它不是简单地关闭Form2,而是关闭整个Application。

我尝试了你的代码,如果我使用右上角的X关闭Form2,它会关闭并立即重新打开。

如果这是你的问题,你可以通过修改你的方法来解决它:

private void button1_Click(object sender, EventArgs e)
{
    this.Close();
}

另一个解决方案可能是将按钮的DialogResult属性设置为与默认的DialogResult.None不同。这样,当单击该按钮时,表单将自动关闭,并且该属性的值将用作ShowDialog()的结果。