Delen via


Toetsenbordinvoerberichten verwerken in het formulier (Windows Forms .NET)

Windows Forms biedt de mogelijkheid om toetsenbordberichten op formulierniveau te verwerken voordat de berichten een besturingselement bereiken. In dit artikel wordt beschreven hoe u deze taak kunt uitvoeren.

Een toetsenbordbericht verwerken

De gebeurtenis KeyPress of KeyDown van het actieve formulier afhandelen en de eigenschap KeyPreview van het formulier instellen op true. Deze eigenschap zorgt ervoor dat het toetsenbord door het formulier wordt ontvangen voordat ze besturingselementen op het formulier bereiken. In het volgende codevoorbeeld wordt de KeyPress gebeurtenis verwerkt door alle nummersleutels te detecteren en 1, 4en 7te gebruiken.

// 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

Zie ook