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.
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é
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.
.NET Desktop feedback