在我的项目中,我曾经使用“ShowDialog()”方法将表单显示为对话框。但它抛出以下异常
“不是顶级表单的表单不能显示为模式对话框。在调用 showDialog 之前从任何父表单中删除该表单。”
Form frm = new Form();
frm.ShowDialog();
请告诉我这个异常的原因。可能吗?
谢谢。
最佳答案
如果您正在使用 MDI
并且 Form
是子窗体,那么错误会告诉您子窗体不是需要与父窗体交互的顶级窗体形式。 “模态形式意味着必须先关闭或隐藏它,然后才能继续使用其余的应用程序”。这就是为什么使用 ShowDialog()
会出现此错误的原因,以及 @S.Petrosov 的答案所在以及您应该在何处使用 Show()
。
关于c# - 不是顶级窗体的窗体不能显示为模式对话框。在调用 showDialog 之前从任何父窗体中删除窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43445588/