Sdílet prostřednictvím


Jak zpracovat zprávy o vstupu z klávesnice ve formuláři (Windows Forms .NET)

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é