Hantera tangentbordsindatameddelanden i formuläret (Windows Forms .NET)
Windows Forms ger möjlighet att hantera tangentbordsmeddelanden på formulärnivå innan meddelandena når en kontroll. Den här artikeln visar hur du utför den här uppgiften.
Hantera ett tangentbordsmeddelande
Hantera KeyPress- eller KeyDown händelsen i det aktiva formuläret och ange KeyPreview-egenskapen för formuläret till true
. Den här egenskapen gör att tangentbordet tas emot av formuläret innan de når några kontroller i formuläret. Följande kodexempel hanterar händelsen KeyPress genom att identifiera alla nummernycklar och använda 1, 4och 7.
// 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
Se även
Samarbeta med oss på GitHub
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.
.NET Desktop feedback