Zpracování zpráv pro zadávání klávesnice ve formuláři (model Windows Forms .NET)
model Windows Forms poskytuje možnost zpracovávat zprávy klávesnice na úrovni formuláře, než se zprávy dostanou do ovládacího prvku. Tento článek ukazuje, jak tuto úlohu provést.
Důležité
Dokumentace k desktopové příručce pro .NET 7 a .NET 6 se právě připravuje.
Zpracování zprávy klávesnice
Zpracujte KeyPress nebo KeyDown událost aktivního formuláře a nastavte KeyPreview vlastnost formuláře na true
. Tato vlastnost způsobí, že formulář obdrží klávesnici předtím, než se dostanou k jakýmkoli ovládacím prvkům ve formuláři. Následující příklad kódu zpracovává KeyPress událost zjištěním všech číselných klíčů a spotřebou 1, 4 a 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
Viz také
.NET Desktop feedback
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro