【发布时间】:2013-12-07 19:11:36
【问题描述】:
我有以下问题:
我在一个堆栈中打开多个模态表单(例如,form1 打开模态表单 form2,而后者又打开模态表单 form3,等等)。我想隐藏整个堆栈。
我尝试调用 Hide 方法或在父级上设置 Visible 属性,但这只会隐藏父级。我还尝试单独隐藏每个表单,但随后我必须在每个表单上调用 ShowDialog 来锁定我调用上述方法的线程。
有没有办法设置模态对话框,以便它们继承父级的状态并通过在第一个表单上设置属性隐藏在级联中?
我也愿意接受其他建议。
【问题讨论】:
-
模式对话框的意思是:“请在继续之前立即做一些事情”。将模态表单置于模态表单之上,然后只想隐藏它们意味着您并没有真正按照预期的方式使用模态表单。考虑修改您的 gui 界面。
-
不幸的是,无法通过重新设计 GUI 来解决此问题。即使有可能,我认为当前的设计是有效的,因为在某些情况下表单可能具有复杂的功能。因此,如果请求用户注意的表单具有足够复杂的逻辑,则也可能需要锁定锁定其父级的表单。此外,业务流程的三个深度级别对于业务应用程序来说似乎是完全可以接受的。
标签: c# .net winforms modal-dialog showmodaldialog