c# - 将当前窗口设置为前景窗口

时间:2013-07-14 18:25:10

标签: c# api interop this topmost

如何将当前打开的窗口设置为前景窗口?

例如,如果您必须在满足条件之前向用户显示另一个应用程序,然后将您的应用程序置于他/她的焦点中,则此方案可能有效。

2 个答案:

答案 0 :(得分:1)

当然,使用SetForegroundWindow API可以轻松实现将窗口置于前台。但这涉及使用System.Runtime.InteropServices命名空间,因此在应用程序中包含非托管代码。一种更简单的方法是我在寻找一种方法时找到的技巧。

只需将表单的TopMost属性设置为true,然后立即将其设置回false即可。

将其设置为true将确定操作系统将其显示在任何其他窗口之上,无论它是否已被聚焦。然后,我们通过将属性设置回false来恢复默认行为:如果另一个应用程序获得焦点,窗口将转到后台,从而进入前台。

因此,在需要此类功能的地方插入以下代码段:

this.TopMost = true;
this.TopMost = false;

保存大量代码行的巧妙技巧!

答案 1 :(得分:0)

只需使用正确的.NET函数:

form.Activate();

不要使用任何TopMost的东西,这是没有必要的。