Toetsenbordinvoerberichten verwerken in het formulier (Windows Forms .NET)
Windows Forms biedt de mogelijkheid om toetsenbordberichten op formulierniveau te verwerken voordat de berichten een besturingselement bereiken. In dit artikel wordt beschreven hoe u deze taak kunt uitvoeren.
Een toetsenbordbericht verwerken
De gebeurtenis KeyPress of KeyDown van het actieve formulier afhandelen en de eigenschap KeyPreview van het formulier instellen op true
. Deze eigenschap zorgt ervoor dat het toetsenbord door het formulier wordt ontvangen voordat ze besturingselementen op het formulier bereiken. In het volgende codevoorbeeld wordt de KeyPress gebeurtenis verwerkt door alle nummersleutels te detecteren en 1, 4en 7te gebruiken.
// 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
Zie ook
.NET Desktop feedback