Listview selection par click droit [Résolu]

Signaler
Messages postés
68
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
15 septembre 2007
-
Messages postés
69
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
3 octobre 2006
-
JMKPROD

Comment selectionner une ligne dans une listview par un click droit?
Merci de vos réponse!

6 réponses

Messages postés
69
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
3 octobre 2006

Je suppose que tu fait apparaître le popup dans l'évènement MouseDown du Listview. Dans ce cas tu peux utiliser la méthode HitTest du ListView qui de permer de récupérer l'Item qui est sous le curseur. Voici un exemple:

Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim Item As ListItem
    Set Item = ListView1.HitTest(x, y)
    If Not Item Is Nothing Then mn1_test1.Caption = Item.Text
    If Button = 2 Then PopupMenu Menu1
End Sub
Messages postés
68
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
15 septembre 2007

JMKPROD

Merci beaucoup geobasic! ton truc fonctionne !
je ne connaissais pas cet evenement, voila comment je l'ai utilisé:

    Dim Item As ListItem
    Set Item = listview.HitTest(x, y)

    Item.Selected = True

    If Not Item Is Nothing Then
        If Button = 2 Then PopupMenu menu
    End If

Encore merci!
Messages postés
68
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
15 septembre 2007

JMKPROD

Opps! petite correction

    Dim Item As ListItem
    Set Item = listview.HitTest(x, y)

    If Not Item Is Nothing Then
        Item.Selected = True
        If Button = 2 Then PopupMenu menu
    End If
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonsoir,
  Que tu cliques avec Gauche ou Droit
  tu as toujours une  ligne sélectionnée !
  Si ta question est comment récupérer des données 
  à partir d' une ListView en cliquant dessus avec le bouton droit ?
  
 Réponse :
 Dans l' événement ListView_MouseUp (ou ListView_MouseDown)
 si Button=2
 'tu récupères l' index de la ligne sélectionnée (en surbrillance)
     Maligne = ListView.SelectedItem.Index
  'tu récupères le contenu d' une colonne avec :
   - s' il s' agit de la première la colonne
     MonText=ListView.ListItems(Maligne).Text
   - si autre colonne   
     MonText=ListView.ListItems(Maligne).ListSubItems(MaColonne).Text
     S' il s' agit d' une variable numérique ou monétaire :
     MonNum=CInt(ListView.ListItems(Maligne).ListSubItems(MaColonne).Text)
                        ou CLng(...
                        ou CCur(......
                      ........

ça ira comme ça ?

chaibat
 
 Ps: Testes avant si ta ListView n' est pas vide,
        sinon tu auras une erreur.
Messages postés
68
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
15 septembre 2007

JMKPROD

Merci de ta réponse, mais le probleme ne se situe pas la.
Lors d'un click droit sur une ligne je declenche l'apparition d' un popupmenu.
Le menu apparait avant que la ligne ne soit selectionnee, je souhaiterai que la ligne soit selectionnee avant le déclenchement du popupmenu pour pouvoir recuperer son index.
Merci de vos reponses
Messages postés
69
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
3 octobre 2006

C'est Ok. N'oublie pas de cliquer sur "Réponse acceptée"