这个问题https://stackoverflow.com/q/33805968/2307070向我的程序员提出了一些问题。所以我抓住了VS(2013年,如果重要的话)并在我的表格中添加了这个功能:
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys keyData)
{
return base.ProcessCmdKey(ref msg, keyData);
}
在立即窗口中使用keyData设置一个断点。我按 Enter 并得到:
keyData
LButton | MButton | Back
确定。所以 Enter 似乎是 Back 。
这里有趣的乞求:
keyData == Keys.Enter
true
keyData == Keys.Back
false
如何解释这种行为?
答案 0 :(得分:0)
工作正常:
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter");
}
if (e.KeyCode == Keys.Back)
{
MessageBox.Show("Back");
}
}