Utilisation des événements du clavier

La plupart des programmes Windows Forms traitent l'entrée au clavier en gérant les événements de clavier. Cette rubrique fournit une vue d'ensemble des événements de clavier, explique quand utiliser chaque événement et détaille les données fournies pour chaque événement. Consultez également Vue d’ensemble des gestionnaires d’événements (Windows Forms) et Vue d’ensemble des événements (Windows Forms).

Événements de clavier

Windows Forms fournit deux événements qui se produisent quand l’utilisateur appuie sur une touche du clavier et un événement qui se produit quand l’utilisateur relâche une touche du clavier :

  • L'événement KeyDown se produit une fois.

  • L'événement KeyPress, qui peut se produire plusieurs fois quand l'utilisateur maintient la même touche enfoncée.

  • L’événement KeyUp se produit une fois quand l’utilisateur relâche une touche.

Quand l'utilisateur appuie sur une touche, Windows Forms détermine quel événement déclencher selon que le message de clavier spécifie une touche de caractère ou une touche physique. Pour plus d’informations sur les touches physiques et les caractères, consultez Fonctionnement de l’entrée du clavier.

Le tableau suivant décrit les trois événements de clavier.

Événements de clavier Description Résultats
KeyDown Cet événement est déclenché quand l'utilisateur appuie sur une touche physique. Le gestionnaire de KeyDown reçoit :

  • un paramètre KeyEventArgs, qui fournit la propriété KeyCode (qui spécifie un bouton de clavier physique) ;
  • la propriété Modifiers (Maj, Ctrl ou Alt) ;
  • la propriété KeyData (qui combine le code de touche et le modificateur). Le paramètre KeyEventArgs fournit également :

    • la propriété Handled, qui peut être définie pour empêcher le contrôle sous-jacent de recevoir la touche ;
    • la propriété SuppressKeyPress, qui peut être utilisée pour supprimer les événements KeyPress et KeyUp pour cette séquence de touches.
KeyPress Cet événement est déclenché quand la ou les touches enfoncées génèrent un caractère. Par exemple, l'utilisateur appuie sur les touches Maj et « a », ce qui produit un caractère « A » majuscule. KeyPress est déclenché après KeyDown.

  • Le gestionnaire de KeyPress reçoit :
  • un paramètre KeyPressEventArgs, qui contient le code de caractère de la touche qui a été enfoncée. Ce code de caractère est unique à chaque combinaison touche de caractère/touche de modification.

    Par exemple, la touche « A » génère :

    • le code de caractère 65, si elle est enfoncée avec la touche Maj ;
    • ou la touche Verr. Maj, 97, si elle est activée seule,
    • Et 1, si elle est enfoncée avec la touche Ctrl.
KeyUp Cet événement est déclenché quand l’utilisateur relâche une touche physique. Le gestionnaire de KeyUp reçoit :

  • un paramètre KeyEventArgs :

    • qui fournit la propriété KeyCode (qui spécifie un bouton de clavier physique) ;
    • la propriété Modifiers (Maj, Ctrl ou Alt) ;
    • la propriété KeyData (qui combine le code de touche et le modificateur).

Voir aussi