Différencier le Clic droit ou gauche (du ListView) [Résolu]

Signaler
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009
-
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009
-
Bonjour.
Est ce que l'on peut différencier le clic droit du clic gauche sur un item du listView?

J'utilise ceci :




Private Sub lw_ItemClick(ByVal Item As MSComctlLib.ListItem) 
    Call MsgBox("Ligne numéro: " & Item.Index & ": " & Item.Text & ": " & Item.SubItems(1)) 
End Sub





mais, il ne fait pas la différence entre le clic gauche du clic droit.
Merci pour vos réponses.
Cordialement.

10 réponses

Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Salut tanaka56


Essaie en utilisant l'évement Mousedown de la listview : il y a le paramètre Button en entrée,ainsique les paramètres Shift,X et Y( ces 2 derniers sont la position du curseur.Je ne l'ai point testé et il est possible que tu perdes l'information de la ligne sélectionnée 


GRENIER Alain[8D]
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
c'est bien oItem.SubItems(1)  (avec un listview en mode report...)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
Private Sub lw_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim oItem as ListItem

    If Button = vbRightButton Then '# J'ai choisi au hasard l'un des deux boutons

       Set



oItem



= lw.HitTest ( X,Y)

       If Not



oItem



Is Nothing Then

          MsgBox
"Ligne numéro: " &
oItem.Index & ": " &
oItem.Text & ": " & oItem.SubItems(1)

       End If

    End If
End Sub








Renfield





Admin CodeS-SourceS

- MVP Visual Basic
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

Bonjour.
Désolé, il se "plante" sur cette ligne :

Set oItem


= lw.HitTest ( X,Y)


Erreur d'exécution 424 (un objet est requis.)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
ta ListView se nomme-t'elle bien lw ? (adapte le code au besoin)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

Salut Renfield,
Évidemment !!!
Comme ceci ça fonctionne :

 Set oItem = ListView.HitTest(x, y)

Merci beaucoup pour tes infos.
Alain
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

Merci également à Galain pour sa participation active, c'est comme cela que l'on peut avancer.
Cordialement.
Alain
Le savoir est la seule matière qui s'accroît quand on la partage. (Socrate)<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
ca fonctionne en métant ListView :o
alors là, ton projet est habité par de petits êtres magiques, enfin, je pense :s

tu dois pourtnat ici simplement mettre le nom de ton ListView...

m'enfin, si ca fonctionne, tant mieux^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

En fait, le nom de mon Listview est "ListView". Je viens de le renommer en "ListView1". Mais cela fonctionnait. Par contre, je n'arrive pas à afficher ce qui ce trouve sur la même ligne mais dans la deuxième colonne !



Al.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
 
Messages postés
124
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2009

Super, ça fonctionne.
Merci encore.
Alain.