Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Windows Forms umožňuje 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 vlastnost KeyPreview formuláře na true. Tato vlastnost způsobí, že formulář zpracovává vstupy z klávesnice dříve, než se dostanou k jakýmkoli ovládacím prvkům ve formuláři. Následující příklad kódu zpracovává událost KeyPress zjištěním všech číselných klíčů a využíváním 1, 4a 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