Windows 表单 - 用另一个键替代 Enter

Windows Form - Override Enter with an other key

有没有办法在Windows表单中用Q键激活当前聚焦的button/control?或者覆盖 Enter,以便按 Q 激活当前聚焦的控件,就像 Enter 一样?我希望用户能够只用左手按 Tab 和 Q 来控制应用程序来循环控制并激活它们。

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

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

作为一个选项,您可以覆盖 ProcessCmdKey and check if the key is Q then send Enter using SendKeys.Send 和 return 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 将行为限制为按钮。