是否有任何方法可以使WinForms窗口在单击按钮时不会切换到活动窗口?我正在尝试制作一个程序,以帮助您为您输入长串文本,例如当您单击按钮时。但是,如果您单击其中一个按钮,它将切换到我的程序,它不会正确键入文本。
编辑:
通过执行以下操作,我能够做到这一点。但是,有一个问题,因为如果我点击标题栏就不会激活窗口。所以我想我正在寻找的东西仍然让我处理按钮点击但不激活窗口。
const int WS_EX_NOACTIVATE = 0x08000000;
protected override CreateParams CreateParams
{
get
{
CreateParams ret = base.CreateParams;
ret.ExStyle |= WS_EX_NOACTIVATE;
return ret;
}
}
答案 0 :(得分:0)
来自http://blogs.msdn.com/b/jfoscoding/archive/2005/09/29/475564.aspx:
private const int WM_MOUSEACTIVATE = 0x0021, MA_NOACTIVATE = 0x0003;
protected override void WndProc(ref Message m) {
if (m.Msg == WM_MOUSEACTIVATE) {
m.Result = (IntPtr)MA_NOACTIVATE;
return;
}
base.WndProc(ref m);
}