C#WinForms:点击按钮后将焦点带回窗体

C#WinForms:点击按钮后将焦点带回窗体,c#,winforms,C#,Winforms,我的简单WinForms应用程序由一个表单组成,其中有两个重要方法: private void MainWindow_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Q) { qKeyPressed = true; } keyTimer.Start(); } private void MainWindow_KeyUp(object sender, KeyEventArg

我的简单WinForms应用程序由一个表单组成,其中有两个重要方法:

private void MainWindow_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Q)
    {
        qKeyPressed = true;
    }
    keyTimer.Start();
}

private void MainWindow_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Q)
    {
        qKeyPressed = false;
    }
    keyTimer.Stop();
}
在表单的构造函数中,我使用
button1.TabStop=false
将按钮1焦点设置为
false
,以便我的表单可以处理方法
KeyUp
KeyDown
。我希望我的表单即使在
按钮1
单击事件之后也能保持焦点。我试过:

button1.TabStop = false;
this.Focus();

private void button1\u单击(对象发送者,事件参数)
但这似乎不起作用,单击后的按钮看起来像是焦点,方法
keypup
keypdown
被禁用。我的问题怎么解决?提前感谢

在按钮单击功能中运行此功能:

this.ActiveControl = null;

单击按钮时,将其设置为活动控件。删除此属性将使您可以将焦点放在表单上。

改用IMessageFilter,这样无论哪个控件具有焦点,您都可以看到关键消息。如果您正在寻找一个只能单击但无法聚焦的按钮,请看一看,谢谢,它非常有效,我不知道为什么有人给了您一个答案是的,我也是。很乐意帮忙!