【问题标题】:topmost window form steal focus最顶层的窗体窃取焦点
【发布时间】:2009-02-23 09:59:19
【问题描述】:

我开发了一个窗体应用程序,它在桌面的右上角显示类似 msn alert 的消息。我将表单的最顶层属性设置为 true,但在我处理它们时它会窃取其他应用程序的焦点。我不希望应用程序窃取令人讨厌的焦点。我怎么解决这个问题 。有什么建议吗?

最好的问候。

【问题讨论】:

    标签: winforms focus


    【解决方案1】:

    覆盖表单的 CreateParams 和 ShowWithoutActivation 属性,如下所示:

    protected override CreateParams CreateParams
    {
      get
      {
        CreateParams baseParams = base.CreateParams;
    
        // WS_EX_NOACTIVATE = 0x08000000,
        // WS_EX_TOOLWINDOW = 0x00000080,
        baseParams.ExStyle |= ( int )( 
          Win32.ExtendedWindowStyles.WS_EX_NOACTIVATE | 
          Win32.ExtendedWindowStyles.WS_EX_TOOLWINDOW );
    
        return baseParams;
      }
    }
    
    protected override bool ShowWithoutActivation
    {
      get { return true; }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多