按钮上不激活窗口按

时间:2015-05-26 19:50:49

标签: c# .net

是否有任何方法可以使WinForms窗口在单击按钮时不会切换到活动窗口?我正在尝试制作一个程序,以帮助您为您输入长串文本,例如当您单击按钮时。但是,如果您单击其中一个按钮,它将切换到我的程序,它不会正确键入文本。

编辑:

通过执行以下操作,我能够做到这一点。但是,有一个问题,因为如果我点击标题栏就不会激活窗口。所以我想我正在寻找的东西仍然让我处理按钮点击但不激活窗口。

const int WS_EX_NOACTIVATE = 0x08000000;

protected override CreateParams CreateParams
{
    get
    {
        CreateParams ret = base.CreateParams;
        ret.ExStyle |= WS_EX_NOACTIVATE;
        return ret;
    }
}

1 个答案:

答案 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);
}