Gestion des entrées utilisateur

Cette rubrique décrit les événements principaux du clavier et de la souris fournis par System.Windows.Forms.Control. Lors de la gestion d’un événement, les auteurs de contrôle doivent substituer la méthode protégée OnEventName au lieu d’attacher un délégué à l’événement. Pour un examen des événements, consultez Déclenchement d’événements à partir d’un composant.

Remarque

Si aucune donnée n’est associée à un événement, une instance de la classe EventArgs de base est passée en tant qu’argument à la Onméthode EventName .

Événements de clavier

Les événements clavier courants que votre contrôle peut gérer sont KeyDown, KeyPresset KeyUp.

Nom de l’événement Méthode à substituer Description de l’événement
KeyDown void OnKeyDown(KeyEventArgs) Déclenché uniquement lorsque l’utilisateur appuie initialement sur une touche.
KeyPress void OnKeyPress

(KeyPressEventArgs)
Déclenché à chaque fois que l’utilisateur appuie sur une touche. Si une clé est conservée en panne, un KeyPress événement est déclenché à la fréquence de répétition définie par le système d’exploitation.
KeyUp void OnKeyUp(KeyEventArgs) Déclenché lors du relâchement d’une touche.

Remarque

La gestion des entrées sur le clavier est considérablement plus complexe que la substitution des événements dans le tableau précédent. Ce thème dépasse le cadre de cette rubrique. Pour plus d’informations, consultez Entrée d’utilisateur dans Windows Forms.

Événements de souris

Les événements de souris que votre contrôle peut gérer sont MouseDown, , MouseEnterMouseHover, MouseLeave, , MouseMoveet MouseUp.

Nom de l’événement Méthode à substituer Description de l’événement
MouseDown void OnMouseDown(MouseEventArgs) Déclenché quand le bouton de la souris est enfoncé alors que le pointeur se trouve sur le contrôle.
MouseEnter void OnMouseEnter(EventArgs) Déclenché lorsque le pointeur pénètre la première fois dans la zone du contrôle.
MouseHover void OnMouseHover(EventArgs) Déclenché lorsque le pointeur pointe sur le contrôle.
MouseLeave void OnMouseLeave(EventArgs) Déclenché lorsque le pointeur quitte la zone du contrôle.
MouseMove void OnMouseMove(MouseEventArgs) Déclenché lorsque le pointeur se déplace dans la zone du contrôle.
MouseUp void OnMouseUp(MouseEventArgs) Déclenché lorsque le bouton de la souris est relâché alors que le pointeur se trouve sur le contrôle ou quitte la zone du contrôle.

Le fragment de code suivant montre un exemple de substitution de l’événement MouseDown .

protected override void OnMouseDown(MouseEventArgs e) {
    base.OnMouseDown(e);
    if (!allowUserEdit) {
        return;
    }
    Capture = true;
    dragging = true;
    SetDragValue(new Point(e.X, e.Y));
}
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    If Not (myAllowUserEdit) Then
        Return
    End If
    Capture = True
    dragging = True
    SetDragValue(New Point(e.X, e.Y))
End Sub

Le fragment de code suivant montre un exemple de substitution de l’événement MouseMove .

protected override void OnMouseMove(MouseEventArgs e) {
    base.OnMouseMove(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    SetDragValue(new Point(e.X, e.Y));
}
Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
    MyBase.OnMouseMove(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    SetDragValue(New Point(e.X, e.Y))
End Sub

Le fragment de code suivant montre un exemple de substitution de l’événement MouseUp .

protected override void OnMouseUp(MouseEventArgs e) {
    base.OnMouseUp(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    Capture = false;
    dragging = false;
    value = dragValue;
    OnValueChanged(EventArgs.Empty);
}
Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    Capture = False
    dragging = False
    Value = dragValue
    OnValueChanged(EventArgs.Empty)
End Sub

Pour obtenir le code source complet pour l’exemple FlashTrackBar, consultez Comment : créer un contrôle Windows Forms qui affiche la progression.

Voir aussi