Guide pratique pour gérer les messages d’entrée au clavier dans le formulaire (Windows Forms .NET)

Windows Forms offre la possibilité de gérer les messages de clavier au niveau du formulaire, avant que les messages n'atteignent un contrôle. Cet article explique comment effectuer cette tâche.

Important

La documentation du Guide du bureau pour .NET 7 et .NET 6 est en cours de construction.

Gérer un message clavier

Gérez l’événement ou KeyDown le KeyPress formulaire actif et définissez la KeyPreview propriété du formulaire truesur . Cette propriété entraîne la réception du clavier par le formulaire avant d’atteindre les contrôles du formulaire. L’exemple de code suivant gère l’événement KeyPress en détectant toutes les clés numériques et en consommant 1, 4 et 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

Voir aussi