c# - 打开 TopMost = true 的 WinForms 窗体但没有窃取焦点?

标签 c# winforms topmost

我有一个在用户屏幕上弹出并具有 TopMost=true 的表单,但它抢走了焦点。我怎样才能让它在第一次出现时抢走焦点?

最佳答案

这对我有用。它提供 TopMost 但没有焦点窃取。

    protected override bool ShowWithoutActivation
    {
       get { return true; }
    }

    private const int WS_EX_TOPMOST = 0x00000008;
    protected override CreateParams CreateParams
    {
       get
       {
          CreateParams createParams = base.CreateParams;
          createParams.ExStyle |= WS_EX_TOPMOST;
          return createParams;
       }
    }

请记住在 Visual Studio 设计器或其他地方省略设置 TopMost。

这是被盗、错误、借用的,来自这里(单击解决方法):

https://connect.microsoft.com/VisualStudio/feedback/details/401311/showwithoutactivation-is-not-supported-with-topmost

关于c# - 打开 TopMost = true 的 WinForms 窗体但没有窃取焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3729899/

相关文章:

c# - 在运行时获取非泛型 IDictionary 的键和值类型

c# - 拆分所有列表框元素并将它们全部添加到一个新的字符串数组中

c# - 在 Release模式下没有获取当前工作目录?

c# - 2 应用Top Most问题

c++ - 如何使窗口出现在所有内容之上(甚至是全屏游戏!)c++/Qt

c# - 如何在 C# 中为命令创建延迟?

c# - 寻找位置 API (c#)

c# - 在移动鼠标并按住右键的同时画一条线

C# - 如何处理 2 "TopMost"表单?

c# - HttpClient 抛出 Rest 服务错误