以下のコードでは、左矢印キーと右矢印キーは期待どおりに機能しますが、上矢印と下矢印は認識されません (ステップスルーすると、最初の 2 つの条件は適切に満たされますが、次の 2 つの条件は満たされません)。
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"
これは私を困惑させました(それが私に示していることです)が、キーレフトとキーライトでコードが入力されます-歯をどれだけ強く食いしばっても、キーアップとキーダウンでは決してありません。