Recherche
Recherche
Les mémos
 ↑  
Je débute...
Visites

 992076 visiteurs

 3 visiteurs en ligne

Lorsque l'on tente d'utiliser ces deux événements d'un même objet, on constate que le double-click produit également un simple click.

Suite des événements lors d'un double-click:

MouseDown -> MouseUp -> Click -> DblClick -> MouseUp -> Click

Il faut donc choisir l'un des deux, mais pas les deux. Car en plus de ce fonctionnement particulier, on aura des difficultés à éviter la confusion, car selon le paramètrage de chaque PC, faire la différence entre le simple et double click peut apporter une difficulté supplémentaire.

Comment alors disposer de "click" différents ?

Nous allons tout simplement détecter le fait que l'utilisateur appuie ou non sur la touche "Shift" (majuscule) pour faire son click.

Pour cela, nous déclarons la variable boShift en haut des modules, dans la partie déclarative.

Option Compare Database
Option Explicit
'
Dim boShift As Boolean

Ensuite, nous détectons l'appui sur cette touche dans l'évenement "Sur touche appuyée" au niveau du formulaire.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

     boShift = (Shift = 1)

End Sub

et nous annulons lors du relachement de la touche...

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    boShift = False

End Sub

Considérons que nous traitons une zone de liste, nous mettrons dans l'événement "Sur click":

Private Sub Liste0_Click()
    If Not boShift Then
        MsgBox "Simple clic"
    Else
        MsgBox "Click avec Shift"
    End If

    boShift = False

End Sub

Bien sûr, il ne faudra pas oublier de configurer l'apercu des touches à "Oui" dans les propriétés dudit formulaire.


Catégorie : Les mémos - Formulaires
Page lue 5768 fois