c# - 不是顶级窗体的窗体不能显示为模式对话框。在调用 showDialog 之前从任何父窗体中删除窗体

标签 c# forms winforms showdialog

在我的项目中,我曾经使用“ShowDialog()”方法将表单显示为对话框。但它抛出以下异常

“不是顶级表单的表单不能显示为模式对话框。在调用 showDialog 之前从任何父表单中删除该表单。”

Form frm = new Form();
frm.ShowDialog();

请告诉我这个异常的原因。可能吗?

谢谢。

最佳答案

如果您正在使用 MDI 并且 Form 是子窗体,那么错误会告诉您子窗体不是需要与父窗体交互的顶级窗体形式。 “模态形式意味着必须先关闭或隐藏它,然后才能继续使用其余的应用程序”。这就是为什么使用 ShowDialog() 会出现此错误的原因,以及 @S.Petrosov 的答案所在以及您应该在何处使用 Show()

关于c# - 不是顶级窗体的窗体不能显示为模式对话框。在调用 showDialog 之前从任何父窗体中删除窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43445588/

相关文章:

c# - 通过编码表示形式限制 TextBox 中 Text 的长度

c# - 列数导入不一致的 SSIS 任务?

javascript - 如何获取div元素值

ruby-on-rails-3 - Rails and Devise - 添加一个登录字段

wpf - 不同大小的WPF表单-设计模式与运行时模式

c# - 在列表中搜索时如何避免空引用异常

C# 导航到 WebBrowser 控件中的 anchor

PHP 如何让我的表单输入包含根据数据库中的选择自动生成的数据

c# - 如何在winforms中将数据绑定(bind)到图表并刷新图表?

c# - Windows 窗体上的鼠标离开事件