【发布时间】:2018-05-11 14:47:32
【问题描述】:
在我的 MDI 表单应用程序中,父表单中有一个 Browse 按钮。单击此按钮时,将显示当前激活表单的保存记录。
我的要求是当Browse 表单打开时,其他子表单不应该被访问,直到Browse 表单没有关闭。
我尝试使用 BrowseForm.ShowDialog(); 而不是 BrowseForm.Show(); 但它抛出了以下异常。
非顶级表单的表单不能显示为模式对话框。在调用 showDialog 之前从任何父窗体中删除该窗体
【问题讨论】:
-
如果这是一个选项,请不要为浏览表单设置
MdiParent,也不要将其添加到父表单的MdiChildren。然后这个异常就会消失,你就可以将它显示为一个模态对话框。 -
@defaultlocale 但我想在应用程序中打开浏览表单。
-
嗯,有什么特别的原因吗?我的意思是,浏览表单无论如何都会阻止应用程序的其余部分,让它成为一个对话框是有意义的。
-
我明白了。然后你需要做一些更复杂的事情:阻止/禁用所有其他 MDI 子项和/或窃取他们的焦点。查看代码项目上的这篇文章:codeproject.com/Articles/48436/…
-
我有一个用 vb6 开发的应用程序。我发现在那个应用程序中是可能的。所以我认为在 .net 中也是可能的