【发布时间】:2013-07-14 18:25:09
【问题描述】:
如何将应用程序当前打开的窗口设置为前台窗口?
这种情况可能是有效的,例如,您必须向用户展示另一个应用程序直到满足条件,然后将您的应用程序置于他/她的焦点。
【问题讨论】:
标签: c# api interop this topmost
如何将应用程序当前打开的窗口设置为前台窗口?
这种情况可能是有效的,例如,您必须向用户展示另一个应用程序直到满足条件,然后将您的应用程序置于他/她的焦点。
【问题讨论】:
标签: c# api interop this topmost
当然,使用 SetForegroundWindow API 可以轻松实现将窗口置于前台。但这涉及使用 System.Runtime.InteropServices 命名空间,因此在您的应用程序中包含非托管代码。一种更简单的方法是我在寻找方法时发现的一个技巧。
就像将表单的TopMost 属性设置为true 然后立即将其设置回false 一样简单。
将其设置为true 将确定操作系统将其显示在任何其他窗口之上,无论它是否获得焦点。然后,我们通过将属性设置回false 来恢复默认行为:如果另一个应用程序获得焦点,窗口将转到后台,从而进入前台。
因此,在需要此类功能的地方插入以下代码 sn-p:
this.TopMost = true;
this.TopMost = false;
节省大量代码行的巧妙技巧!
【讨论】:
只需使用正确的 .NET 函数:
form.Activate();
不要使用任何 TopMost 的东西,没有必要。
【讨论】: