最顶层的窗户形式窃取焦点

时间:2009-02-23 09:59:20

标签: winforms focus

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

最好的问候。

1 个答案:

答案 0 :(得分:4)

覆盖Form的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; }
}