有没有办法当父打开一个模式对话框自动隐藏总是在最上层的无模式对话框?(Is there a way

2019-10-17 12:31发布

我的C#Winforms应用程序有一个总是在最上的无模式对话框中找到。 由于用户可以访问父窗口,而无模式查找对话框打开,他们可以选择打开一个模态对话框为好。 由于无模式对话框始终位于顶层它掩盖了模态对话框,但它是不可能的用户在这一点上,因为模式对话框锁定了用户交互的所有其他窗口关闭无模式对话框。

目前我解决此工作通过手动添加代码打开任何模式窗口之前关闭无模式查找对话框,我想知道是否有更好的解决办法?

Answer 1:

如何调用模式对话框,然后恢复之前使无模式对话框没有,总是在最前?

modeless.TopMost = false;
// show modal dialog here
modeless.TopMost = true;


Answer 2:

是否在查找对话框需要始终在最前面? 如果目的仅仅是有它浮动的主要形式上面,是不是sufficiant设置的主要形式为母公司,以查找对话框? 然后,它会永远在前面,而不需要总是在最上层。

否则,我会做的查找对话框听在应用发生了什么,并采取相应的措施。 (这可以以多种方式来解决,从事件到commong碱形式为所有形式的该应用一个CBT-钩侦听系统范围为窗口激活/去激活。)



文章来源: Is there a way to auto-hide a always-on-top modeless dialog when the parent opens a modal dialog?