Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation TreeView VB 6.0

3 réponses
Avatar
Gandalf
Bonjour,

J'ai quelques difficultés dans l'utilisation d'un TreeViewCtl sous VB 6.0.
En fait, je souhaite afficher l'arborescence suivante :

Parent1
+---Enfant1
+---Enfant2
Parent2
+---Enfant1
...

Le code suivant me donne bien ce que je veux, par contre les noeuds enfants
ne sont pas visibles, je dois cliquer sur le noeud parent pour qu'ils
s'affichent :
--------------------------
Dim SqlRequest, skey1, skey2 As String
Dim I As Long
Dim ParentNode As Nodes
Dim ChildNode As Nodes

Set rs = CreateObject("ADOCE.Recordset.3.1")
...

skey1 = "toto"
skey2 = "toto1"

I = 1
Do While (Not rs.EOF)
Set ParentNode = TreeViewCtl1.Nodes.Add(, tvwLast,
CStr(rs.Fields("pal_id").Value), CStr(rs.Fields("pal_id").Value))
Set ChildNode =
TreeViewCtl1.Nodes.Add(CStr(rs.Fields("pal_id").Value), tvwChild,
CStr(rs.Fields("pal_id").Value) & skey1, CStr(rs.Fields("pal_emp").Value), 1,
2)
TreeViewCtl1.Nodes.Add CStr(rs.Fields("pal_id").Value), tvwChild,
CStr(rs.Fields("pal_id").Value) & skey2, CStr(rs.Fields("pal_mag").Value), 1,
2
rs.MoveNext
I = I + 1
Loop
--------------------------
De plus dans le code suivant, je ne sais pas quel doit être le premier
argument à passer :
Set ParentNode = TreeViewCtl1.Nodes.Add(, tvwLast,
CStr(rs.Fields("pal_id").Value), CStr(rs.Fields("pal_id").Value))

Si je n'indique rien, je n'ai pas d'erreur, mais il faut indiquer un noeud
racine je pense ?

Merci d'avance pour toute réponse.

3 réponses

Avatar
Zoury
Salut Gandalf! :O)

Le code suivant me donne bien ce que je veux, par contre les noeuds


enfants
ne sont pas visibles,



Regarde du côté de la propriété Expanded d'un noeud :
'***
ParentNode.Expanded = True
'***

De plus dans le code suivant, je ne sais pas quel doit être le premier
argument à passer :
Set ParentNode = TreeViewCtl1.Nodes.Add(, tvwLast,
CStr(rs.Fields("pal_id").Value), CStr(rs.Fields("pal_id").Value))

Si je n'indique rien, je n'ai pas d'erreur, mais il faut indiquer un noeud
racine je pense ?



Pas besoin pour le(s) noeud(s) racine(s).. les 2 premiers arguments peuvent
rester vide.

--
Cordialement
Yanick Lefebvre
MVP pour Visual Basic
Avatar
Gandalf
Merci Zoury, ça marche.
Mais il faut placer "ParentNode.Expanded = True" après les instructions
suivantes :
Set ChildNode = ...
ParentNode.Expanded = True

Par contre, devant chaque noeud parent, comment faire pour mettre par
exemple le signe "+" afin de déployer/replier les différents noeuds ?

Merci pour toute info.

"Zoury" a écrit :

Salut Gandalf! :O)

> Le code suivant me donne bien ce que je veux, par contre les noeuds
enfants
> ne sont pas visibles,

Regarde du côté de la propriété Expanded d'un noeud :
'***
ParentNode.Expanded = True
'***

> De plus dans le code suivant, je ne sais pas quel doit être le premier
> argument à passer :
> Set ParentNode = TreeViewCtl1.Nodes.Add(, tvwLast,
> CStr(rs.Fields("pal_id").Value), CStr(rs.Fields("pal_id").Value))
>
> Si je n'indique rien, je n'ai pas d'erreur, mais il faut indiquer un noeud
> racine je pense ?

Pas besoin pour le(s) noeud(s) racine(s).. les 2 premiers arguments peuvent
rester vide.

--
Cordialement
Yanick Lefebvre
MVP pour Visual Basic





Avatar
Zoury
Salut!

Par contre, devant chaque noeud parent, comment faire pour mettre par
exemple le signe "+" afin de déployer/replier les différents noeuds ?



Modifie la propriété Style du TreeView
http://msdn.microsoft.com/library/en-us/cmctl198/html/vbprostyletreeview.asp

--
Cordialement
Yanick Lefebvre
MVP pour Visual Basic