cs_Papin38
Messages postés15Date d'inscriptionjeudi 10 août 2006StatutMembreDernière intervention13 octobre 2010
-
14 mars 2007 à 12:05
cs_Papin38
Messages postés15Date d'inscriptionjeudi 10 août 2006StatutMembreDernière intervention13 octobre 2010
-
14 mars 2007 à 15:55
Bonjour à tous,
Je débute en .NET et je cale sur un petit problème de tree
En VB6 quand on faisait :
For Each Nod In Tree.Nodes
...
Next
On passait en revue la totalité des nodes du tree, quelque soit la profondeur de l'arborescence.
Sur .NET on obtient que les enfants proches.
J'ai essayé avec les 'énumérateur' mais le résultat est le même !
Je suis persuadé qu'il doit exister une solution simple.
Un grand merci à celui ou celle qui me renseignera.
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 14 mars 2007 à 15:12
Salut,
Je n'ai pas trouvé de solution "simple".
Pour avoir tous les noeuds, il faut faire un traitement récursif, de façon à ramener pour chaque noeud, la totalité de ses noeuds fils
Ci dessous :
- une procédure permettant de ramener tous les noeuds fils d'un noeud,
- une fonction appelant la procédure précédente et renvoyant ainsi la totalité des noeuds passés en paramètre
- un exemple d'utilisation.
Private
Sub lsub_GetNodes(ByVal a_Node As TreeNode, ByVal a_Collection As Collection)
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
'Recherche les noeuds fils du noeud passé en paramètre et les ajoute à la collection a_Collection
Dim
l_Node As TreeNode
'Parcourt les noeuds fils
For
Each l_Node In a_Node.Nodes
'Ajoute le noeud à la collection
a_Collection.Add(l_Node)
'Recherche les noeuds inférieurs
lsub_GetNodes(l_Node, a_Collection)
Next
End
Sub
Private
Function lfct_GetTreeViewNodes(ByVal a_Treeview As TreeView) As Collection
'Renvoie, sous forme d'une collection, la liste des noeuds du treeview
Dim
l_Node As TreeNode
Dim
l_Coll AsNew Collection
'Parcourt les noeuds "Pères" du treeview
For
Each l_Node In a_Treeview.Nodes
'Ajoute ces noeuds à la collection
l_Coll.Add(l_Node)
'Recherche les noeuds fils de l_Node
lsub_GetNodes(l_Node, l_Coll)
Next
l_Node
'Renvoie la collection de noeuds
lfct_GetTreeViewNodes = l_Coll
End
Function
Utilisation :
Private
Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click