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();
}
感谢您的任何帮助!
我认为您正在使用按钮 2 关闭 Form1。这将执行button1_click,它不仅关闭 Form2,还会关闭整个应用程序。
我尝试了您的代码,如果我使用右上角的 X 关闭 Form2,它将关闭并立即重新打开。
如果这是您的问题,您只需像这样修改您的方法即可解决它:
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
另一种解决方案可能是将按钮的 DialogResult 属性设置为与默认 DialogResult.None 不同的属性。这样,当单击按钮时,窗体将自动关闭,并且属性的值将用作 ShowDialog() 的结果。