Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Windows Forms bietet die Möglichkeit, Tastaturnachrichten auf Formularebene zu verarbeiten, bevor die Nachrichten ein Steuerelement erreichen. In diesem Artikel wird gezeigt, wie Sie diese Aufgabe ausführen.
Eine Tastaturmeldung verarbeiten
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 Tastatureingaben zuerst vom Formular empfangen werden, bevor sie irgendwelche Steuerelemente im Formular erreichen. 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
.NET Desktop feedback