【问题标题】:c# - Setting current window as the foreground windowc# - 将当前窗口设置为前台窗口
【发布时间】:2013-07-14 18:25:09
【问题描述】:

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

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

【问题讨论】:

    标签: c# api interop this topmost


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      form.Activate();
      

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

      【讨论】:

      • 这也会给它焦点,所以除非你不介意从另一个窗口失去焦点。这应该有效。
      猜你喜欢
      • 2012-10-21
      • 1970-01-01
      • 2013-01-08
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多