Verarbeiten von Tastatureingabemeldungen im Formular (Windows Forms .NET)

Windows Forms bieten die Möglichkeit, Tastatureingaben auf Formularebene zu behandeln, bevor die Eingaben an ein Steuerelement weitergegeben werden. In diesem Artikel wird erläutert, wie Sie diese Aufgabe ausführen.

Wichtig

Der Desktopleitfaden zu .NET 7 und .NET 6 ist in Bearbeitung.

Verarbeiten einer Tastaturmeldung

Verarbeiten Sie das Ereignis KeyPress oder KeyDown des aktiven Formulars, und legen Sie die KeyPreview-Eigenschaft des Formulars auf true fest. Diese Eigenschaft bewirkt, dass die Tastatureingabe vom Formular empfangen wird, bevor sie Steuerelemente im Formular erreicht. Im folgenden Codebeispiel wird das KeyPress-Ereignis verarbeitet, indem alle Zahlentasten erkannt und 1, 4 und 7 verarbeitet werden.

// Detect all numeric characters at the form level and consume 1,4, and 7.
// Form.KeyPreview must be set to true for this event handler to be called.
void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar >= 48 && e.KeyChar <= 57)
    {
        MessageBox.Show($"Form.KeyPress: '{e.KeyChar}' pressed.");

        switch (e.KeyChar)
        {
            case (char)49:
            case (char)52:
            case (char)55:
                MessageBox.Show($"Form.KeyPress: '{e.KeyChar}' consumed.");
                e.Handled = true;
                break;
        }
    }
}
' Detect all numeric characters at the form level and consume 1,4, and 7.
' Form.KeyPreview must be set to true for this event handler to be called.
Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs)
    If e.KeyChar >= Chr(48) And e.KeyChar <= Chr(57) Then
        MessageBox.Show($"Form.KeyPress: '{e.KeyChar}' pressed.")

        Select Case e.KeyChar
            Case Chr(49), Chr(52), Chr(55)
                MessageBox.Show($"Form.KeyPress: '{e.KeyChar}' consumed.")
                e.Handled = True
        End Select
    End If

End Sub

Siehe auch