0

我们如何将当前打开的窗口设置为应用程序的前台窗口?

例如,如果您必须向用户展示另一个应用程序,直到满足某个条件,然后将您的应用程序置于他/她的焦点中,这种情况可能是有效的。

4

2 回答 2

1

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

就像将表单的TopMost属性设置为true然后立即将其设置回一样简单false

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

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

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

节省大量代码行的巧妙技巧!

于 2013-07-14T18:25:09.903 回答
0

Just use the correct .NET function:

form.Activate();

Don't use any TopMost things, it's not necessary.

于 2013-07-14T19:43:13.590 回答