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

本文关键字:一次 ShowDialog 循环 运行时 Form | 更新日期: 2023-09-27 18:35:12

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

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

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

在窗体 2 中:

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

感谢您的任何帮助!

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

我认为您正在使用按钮 2 关闭 Form1。这将执行button1_click,它不仅关闭 Form2,还会关闭整个应用程序。

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

如果这是您的问题,您只需像这样修改您的方法即可解决它:

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

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