Frage

Ich bin neu hier und ich habe ein wenig Probleme mit einer C # -Anwendung. Ich möchte den Schlüssel nach unten Ereignis erfassen. Das war kein Problem, zunächst aber nachdem ich ein paar Knöpfe zu dem Formular hinzugefügt, ignoriert die Taste gedrückt-Ereignis des Formulars mit den Pfeiltasten und bewegt den Fokus von einer Schaltfläche zum nächsten. (Der Schlüssel Veranstaltung arbeitet) Gibt es ein Art und Weise, dies zu stoppen und sie etwas anderes machen, wenn ich mit den Pfeiltasten halten?

War es hilfreich?

Lösung

Stellen Sie den KeyPreview Eigenschaft auf dem Formular zu wahren. Das erlaubt der Form das keydown Ereignis zusätzlich zu dem untergeordneten Steuerelemente zu sehen.

Fügen Sie diese auf Ihrem Formular ...

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData.Equals(Keys.Right))
    {
        MessageBox.Show("Right Key Pressed!");
    }

    return base.ProcessCmdKey(ref msg, keyData);
}

Andere Tipps

Wenn Sie die normale Taste gedrückt Funktionalität nicht wollen für die Steuerelemente müssen Sie auf jeder Kontrolle die Taste gedrückt Ereignis setzen, und stellen Sie die behandelt Attribut für die Ereignisargumente um wahr zu sein, so tut es nicht Blase bis zu dem in Steuerungsfunktionalität gebaut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top