Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Passer en revu TOUS les nodes d'un tree [ Divers / Débutants ] (Papin38)

mercredi 14 mars 2007 à 12:05:34 | Passer en revu TOUS les nodes d'un tree

Papin38

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.

mercredi 14 mars 2007 à 15:12:43 | Re : Passer en revu TOUS les nodes d'un tree

mrdep1978

Réponse acceptée !

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)

'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

Dim l_Node As TreeNode

For Each l_Node In lfct_GetTreeViewNodes(TreeView1)

ListBox1.Items.Add(l_Node.Text)

Next

End Sub


mercredi 14 mars 2007 à 15:55:35 | Re : Passer en revu TOUS les nodes d'un tree

Papin38

Merci à toi mrdep1978 pour ta réponse et ton code en exemple.

J'avais espéré pouvoir éviter la récursivité. Mais .NET ne peut pas avoir que des avantages... !




Cette discussion est classé dans : net, passer, nodes, tree, revu


Répondre à ce message

Sujets en rapport avec ce message

Je viens de passer a VB.NET... [ par pingwee ] Je viens de passer a VB.NET et je vient de découvrir que les index ne sont plus supportés !Je les ai remplcé par des collections, mais il n'est plus p .NET: Comment passer un paramètre à l'ouverture d'un formulaire [ par wico2002 ] Bonjour, En .NET :J'aimerais savoir comment faire pour passer un paramètre à un formulaire qu'on ouvre avec .ShowDialog() ?Dans une fenêtre j'ai une De VB6 à VB.NET [ par psykocrash ] Bonjour,Je programme depuis environ 6 ans en vb6 et j'hésite à passer au vb.net. Est ce difficile de passer de l'un à l'autre ? Quelles sont les modif Passer une requete a un crystal report en .Net [ par chris81 ] bonjour,savez comment il faut faire pour envoyer une requete sql sous .net a un rapport fait avec crystal report?merci Comment faire passer des info de form en form en VB.NET ? [ par Turakam ] Salut a tous, Ma question est tres con :)Comment faire passer des info de form en form en VB.NET ?Exemple : J'ai 2 form, une avec une textbox (la form passer d une fenetre a une autre [ par eviljojo22 ] je suis un newbie ds le vb mais j ai bcp de base avec le cracking je voudrai savoir comment en cliquant sur le bouton d une fenetre on peut acceder a [.net] comment passer un parametre a mon .exe [ par lebender33 ] Salut à tous,Alors voila j'ai un prog en vb.net. Et je veux passer des parametres au .exe généré du genre "monprog.exe argument1 argument2".J'ai vu qu passer de vb.net a asp.net [ par j_aub ] slt ttt le monde,voilà j'ai developpé une application en vb.net ( format .exe) et j'ai besoin de la migrer vers asp.net. est ce qu'il y a moyen de fai Devrais-je migrer vers vb.net ? [ par Mew27 ] Bonjour, j'ai commencé  un programme il y a quelques temps, mon premier client actuel a windows xp, tout va bien jusqu'ici, par contre je me demande s [VB.net] passer des parametres dans un compteur [ par grand prophete ] Bonjour Peut on passer des parametre supplementaires dans un compteur du genre Code : PrivateSub Timer1_Elapsed(ByVal sender As System.Object, ByVa


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,530 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.