KeyDown erkennt den linken und den rechten richtungspfeil-Tasten, aber nicht oben und unten

Mit dem code unten, Links und Rechts Pfeil-Tasten funktionieren wie erwartet, aber die up-und down-Pfeile werden nicht erkannt (schrittweise durch die ersten beiden Bedingungen erfüllt sind, wo angebracht, aber die anderen beiden nie):

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;
    }
}

Warum würde das sein, und wie kann ich es beheben?

UPDATE

Hier ist, was ich sehe, wenn ich den Mauszeiger über e.Keycode beim Durchlaufen. Wenn ich gedrückt

  • ...Die linke Pfeiltaste, sehe ich: e.KeyCode = "LButton | MButton | Space"
  • ...- Rechts-Taste, sehe ich: e.KeyCode = "LButton | RButton | MButton | Space"
  • ...Die Up-Taste, sehe ich: e.KeyCode = "RButton | MButton | Space"
  • ...Die Down-Taste, sehe ich: e.KeyCode = "Backspace | Space"

Dieser hat mich verblüfft (was zeigt Sie mir), aber auf keyleft und keyright, meinen code eingegeben werden - es ist nie für keyup und keydown, egal wie hart ich beiß mir die Zähne.

Setzen Sie einen break-Punkt an den Anfang Ihres event-handler. Ist es immer noch genannt wird für die up-und down-Tasten? Wenn nicht, etwas anderes ist immer das Ereignis und ruft e.Handled = true vor dieser handler bekommt die chance.
Ja, ich erwähne Durchlaufen es in meinem ursprünglichen Beitrag.
Gut, wie Sie verstärkt sind, durch Sie, was ist der Wert von e.KeyCode für diese beiden Fälle?
Gute Frage; beantwortet wurden (meinen Beitrag aktualisiert)
Das tun Sie, indem Sie jede chance nutzen, ein schickes Logitech die Tastatur? Oder sind Sie eine Codierung für eine mobile Plattform?

InformationsquelleAutor B. Clay Shannon | 2012-05-09

Schreibe einen Kommentar