Winforms Windows窗体-使用其他键替代Enter

Winforms Windows窗体-使用其他键替代Enter,winforms,focus,overriding,Winforms,Focus,Overriding,在Windows窗体中是否有方法使用Q键激活当前聚焦的按钮/控件?或者覆盖Enter键,以便按Q键可以像Enter键一样激活当前聚焦的控件?我希望用户能够控制应用程序,只需左手按Tab和Q键即可循环控制并激活它们 private void Form2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Q) { e.Handle

在Windows窗体中是否有方法使用Q键激活当前聚焦的按钮/控件?或者覆盖Enter键,以便按Q键可以像Enter键一样激活当前聚焦的控件?我希望用户能够控制应用程序,只需左手按Tab和Q键即可循环控制并激活它们

private void Form2_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Q)
            {
                e.Handled = true;
            }

我已经有了这个,但是在处理e.之后需要什么来激活当前焦点?

作为一个选项,您可以覆盖并检查键是否为Q,然后使用发送回车并返回
true
来指示您已处理键:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == Keys.Q)
    {
        SendKeys.Send("{Enter}");
        return true;
    }
    return base.ProcessCmdKey(ref msg, keyData);
}

如果需要,您可以通过选中
this.ActiveControl is Button
来限制按钮的行为。

要将焦点移动到不同的控件,
Tab
就足够了。您的意思是想在
按钮上使用
Q
而不是
Enter
?一个
文本框如何?
?事情是,一切都是自动化的,你只需做一些决定,然后按下我的一个按钮,如果用户可以用右手控制鼠标,用左手控制Tab+Q来选择一个按钮并激活它,那就太好了,不使用enter。欢迎:)如果需要,可以通过选中
this.ActiveControl is Button
将行为限制为按钮。