以下代码中,左右箭头键的功能正常,但上下箭头键无法识别(通过逐步调试,发现前两个条件在适当情况下得到满足,但后两个条件从未得到满足):
private void textBox1_KeyDown(object sender, KeyEventArgs e) {
TextBox tb = (TextBox)sender;
if (e.KeyCode.Equals(Keys.Left)) {
SetFocusOneColumnBack(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Right)) {
SetFocusOneColumnForward(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Up)) {
SetFocusOneRowUp(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Down)) {
SetFocusOneRowDown(tb.Name);
e.Handled = true;
return;
}
}
为什么会出现这种情况,我该如何解决?
更新
当我逐步执行时,鼠标停留在 e.Keycode 上面所看到的内容如下:
- ...左箭头键:
e.KeyCode = "LButton | MButton | Space"
- ...右箭头键:
e.KeyCode = "LButton | RButton | MButton | Space"
- ...上箭头键:
e.KeyCode = "RButton | MButton | Space"
- ...下箭头键:
e.KeyCode = "Backspace | Space"
这让我感到十分困惑(它向我展示了什么),但是在按下左箭头键和右箭头键时,我的代码会被输入 - 无论我多么用力咬牙关上牙关,都不会对 keyup 和 keydown 产生影响。
e.KeyCode
的值是什么? - Alain