【发布时间】:2010-08-15 15:29:06
【问题描述】:
我的应用程序的通知图标相应地显示和隐藏主应用程序窗口。但是,当打开模态对话框(这可以是关于对话框或设置对话框,仅举几例)时,我希望模态对话框获得焦点,而不是显示/隐藏主应用程序窗口。
模式对话框使用form.ShowDialog(this) 打开。假设我使用该代码打开“关于”窗口,然后在不关闭它的情况下转到另一个应用程序。当我回来时,如果我单击通知图标,我希望我的应用程序能够获得焦点。更好的是,我希望模态对话框获得焦点,因为它是模态的,我不能使用父窗体。
如果打开任何表单(关于、设置等),我会使用一个简单的 bool 变量来跟踪,当我单击通知图标时,我会检查该变量。如果是真的,我会做类似mainForm.Activate() 的事情。这实际上将主窗体和模态对话框带到了最前面,唯一的问题是它没有聚焦模态对话框。
如何在不跟踪打开哪个模态对话框并为此调用.Activate() 的情况下解决此问题?因为那会很痛苦……
【问题讨论】:
标签: c# winforms dialog focus modal-dialog