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