Control treeview et listeview

[Résolu]
Signaler
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006
-
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006
-
Bonjour

J'ai un probléme sur l'interaction entre un treeview est une listeview

J'ai un treeview nommé treeview1 et un listeview nommé listeview1

J'ai deja codé pour :

quand je click sur le neud du treeview1 >les neuds enfants apparaisse dans listeview1
mainteant je voudrais que :
Quand je click deux fois un item de listeview1 >le noeud correspondant au treeview1 soit selectionné

simple nan, mais voila, j'y arrive pas

si une âme charitable pouvait m'aider. (un ptit bout de code SVP :))

Merci,

5 réponses

Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006

re
Je vient de trouver une methode : (elle est moche, parceque l'on voit dans le treeview chaque noeud ce selectionner pendant la procedure)
Y 'a t'il une methode plus propre que ceci ?
sachant que mes index dans le treeview est defini comme suit :
merci bien :p
0
   0
   1
   2
   3
1
   0
   1
      0
      1   
      2

 Dim MonNeudActuel As New TreeNode
        Dim MonTreeview As TreeView = ExplorateurADTreeview
        Dim i


        Try
            'je verifi si le neud est ouvert sinon je l'ouvre
            If MonNeud.IsExpanded = False Then MonNeud.ExpandAll()
            'ici une boucle "pas beau du tout"
            For i = 1 To 100
                'ici je defini  MonNeudActuel comme etant au neud actuellement selectionné
                MonNeudActuel = MonTreeview.SelectedNode
                'ici je défini le Neud du treeview comme etant le neud visible suivant
                MonTree.SelectedNode = MonNeudActuel.NextVisibleNode
                'ici je verifi si le MonNeudActuel correspont au nom de l'item de ma listeview
                If MonNeudActuel.Text = MonItemRechercher Then
                    'ici je demande a montreeview de selecitonner le MonNeudActuel
                    MonTree.SelectedNode = MonNeudActuel
                    MonTree.SelectedNode.ExpandAll()
                    Exit Sub
                End If
            Next
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
Salut
Je ne rentre pas dans le détail des noeuds des TreeView, mais ton problème consiste à retrouver l'Item/Noeud dans ton TreeView à partir du click sur un Item de ton ListView.
Il faut donc mémoriser l'endroit d'où ont été extraites les données du TreeView (pour chaque Item 'copié').
Les ListView ont l'avantage de posséder un attribut .Tag pour chaque item (et pas un seul pour tout le composant comme dans les ListBox)
--> Utilise ce .Tag pour stocker les coordonnées du noeud auquel appartiennent les données.
Quand tu cliqueras sur un Item de ton ListView, relis le .Tag associé : il te permettra de localiser le Noeud.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
PS : Je viens de voir que c'est en .Net (je pensais VB6)
Normalement, les composants n'ont pas changé et cette 'astuce' doit être valable.
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006

Merci pour la reponse mais, sa ne vas pas :s

Car quand je click sur un neud dans  un treeview
Je cree des items dans ma listeview qui correspond au Text des neuds enfants

En fait je voudrais faire comme dans un explorateur de fichier, mais avec des items
un peut comme la fonction
Dim MonTree As TreeView = ExplorateurADTreeview
Dim MonNeud As New TreeNode
MonTree.SelectedNode = MonNeud.NextNode

mais je voudrais
MonTree.SelectedNode = MonNeud."Le neud que je désire"

donc je voudrais faire un code du genre
>rechercher le noeud dans le treeview qui corresponderais au texte de mon item dans listeview
>quand trouver mettre en surbrillance dans mon treeview le noeud trouvé

Merci, je sais c'est un peut barbare comme méthode, mais je débute en .net :p
 
THX pour les reponses
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006

Ps : pour le tag je l'utilise deja pour mémoriser le chemin LDAP de l'item dans l'active directory