如何在按钮的 keyDown 事件中按 Enter 后处理命令

How to process the command after pressing Enter in keyDown event for button

我正在编写一个仅由键盘上的 numblock 控制的应用程序,我需要使用以下代码解决问题:

private void btnSaveCorrection_KeyDown(object sender, KeyEventArgs e)
{
    MessageBox.Show("HEY");

    if (e.KeyCode == Keys.Enter)
    {
        MessageBox.Show("HEY");
        // Save to DB and jump to next control
    }
    else
    {
        MessageBox.Show("WTF");
        // if e.KeyCode is [+] or [-], jump to next/previous control
    }
}

问题是: 当我按 Enter 时,没有任何反应。当我按任何其他键时,会显示 MessageBox "WTF"。为什么在按下 Enter 时忽略 KeyDown 事件中的所有代码?如何解决?

感谢每一个回复。

嗯,对我来说,如果您 link KeyUp 事件而不是 KeyDown 事件,它就可以工作。

我认为问题在于回车键被视为按钮上的 "click" 作为其默认行为。

我的建议是 link KeyUp 事件而不是 KeyDown 事件。