如何在按钮的 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 事件。
我正在编写一个仅由键盘上的 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 事件。