已经可见的窗体不能显示为模态对话框

本文关键字:显示 模态 对话框 不能 窗体 | 更新日期: 2023-09-27 18:03:50

在我的程序中,我在ShowDialog的帮助下打开每个表单,并在:

的帮助下关闭前一个表单
this.Hide();
...some code...
this.Close();

但是当我想第二次打开Form时,我得到了标题中的错误。会是什么呢?也许是因为我对想要再次打开的表单使用了Singleton模式

已经可见的窗体不能显示为模态对话框

您可以根据需要创建每个表单的新实例,而不是使用ShowDialog不断显示表单。例如

using(Form frm = new Form1)
{
   DialogResult dr = frm.ShowDialog(this)
   if(dr == DialogResult.Cancel)
   {
     ...
   }
}

Form frm = new Form1();
DialogResult dr = frm.ShowDialog(this);
if(dr == DialogResult.Cancel)
{
  ...
}
frm.Dispose();

查看答案