Bonjour,

J'ai un petit souci avec mon treeview. Je le remplis grâce à 3 dicos Mais j'aimerais pouvoir étendre les nœuds pas le code.

Voici ce que je fait pour remplir le treeview:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
 
    Private tvParent As TreeNode
    Private tvType As TreeNode
 
 
    Private Sub loadClasses()
 
        Dim line As String
        TreeView1.Nodes.Clear()
 
        If myClasses.ObjDesc.Count > 0 Then
            For Each key As String In myClasses.ObjDesc.Keys
                tvParent = TreeView1.Nodes.Add(key, key, 0, 0)
                tvType = tvParent.Nodes.Add("CFG", "CFG", 0, 0)
                For Each key2 As String In myClasses.ObjDesc(key).Cfg.Keys
                    line = key & " , " & myClasses.ObjDesc(key).Cfg(key2).Name & " , " & _
                        myClasses.ObjDesc(key).Cfg(key2).ExpliciteName & " , " & myClasses.ObjDesc(key).Cfg(key2).Acces & " , " & _
                        CStr(myClasses.ObjDesc(key).Cfg(key2).vbType) & " , " & myClasses.ObjDesc(key).Cfg(key2).Limitation & " , " & _
                        CStr(myClasses.ObjDesc(key).Cfg(key2).Use) & " , " & Format(myClasses.ObjDesc(key).Cfg(key2).UseVersion, "##,#")
                    tvType.Nodes.Add(line, line, 0, 0)
                    tvType.ExpandAll()
                Next
                tvType = tvParent.Nodes.Add("DATA", "DATA", 0, 0)
                For Each key2 In myClasses.ObjDesc(key).Data.Keys
                    line = key2 & " , " & myClasses.ObjDesc(key).Data(key2).Name & " , " & _
                       myClasses.ObjDesc(key).Data(key2).ExpliciteName & " , " & myClasses.ObjDesc(key).Data(key2).Acces & " , " & _
                       CStr(myClasses.ObjDesc(key).Data(key2).vbType) & " , " & myClasses.ObjDesc(key).Data(key2).Limitation & " , " & _
                       CStr(myClasses.ObjDesc(key).Data(key2).Use) & " , " & Format(myClasses.ObjDesc(key).Data(key2).UseVersion, "##,#")
                    tvType.Nodes.Add(line, line, 0, 0)
                    tvType.ExpandAll()
                Next
            Next
        End If
        TreeView1.Scrollable = True
    End Sub
Ce treeview à donc 3 niveaux, celui de base (niveau 1) ou j'ai les "key" puis dessous 2 objets appelés CFG et DATA puis sous chaque j'ai plusieurs ligne regroupant plusieurs informations.
Le niveau 2 et 3 est étendu dés que j'étend manuellement le niveau 1.

Ce que j'aimerais c'est pouvoir étendre l'un des niveaux 1 par le code et fermé les autres.

En faite le treeview n'est qu'un visualiseur de mes données, à coté j'ai le détail de l'un des objet que je peux modifier, en ajouter ou supprimer.

Idéalement il faudrait aussi que la vue se place de façon à voir l’intégralité du nœud étendu puisque j'ai les ascenseurs d'actif "TreeView1.Scrollable = True"

J'ai essayé avec "TreeView1.SelectedNode" mai je n'arrive pas à lui donner la bonne information.


A l'inverse il faut que lorsque l'on clique manuellement dans le treeview que je puisse récupérer le texte nœud de base ainsi que CFG ou DATA et la ligne sélectionné du niveau 3.

Merci