Liste de tous les noeuds d'un treeview (vb2005e) [Résolu]

Signaler
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
-
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
-
bonjour,

j'aimerai pouvoir récupérer la liste de tous les noeuds, sous-noeuds, sous-sous-noeuds, etc    d'un treeview ? sans biensur connaitre à l'avance la profondeur du treeview.
pas moyen de trouver de l'aide pour çà
c'est pour faire une recherche dans le nom d'un nom et donc le checker si on le trouve

merci de vos réponses

8 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
33
Salut,

youhou, petite fonction :


Private Function GetNode(ByVal Parent As System.Windows.Forms.TreeNodeCollection, _
 ByVal SearchName As String) As System.Windows.Forms.TreeNode
  Dim FoundNode As System.Windows.Forms.TreeNode = Nothing
  For Each ChildNode As System.Windows.Forms.TreeNode In Parent
    If ChildNode.Name.Equals(SearchName) Then Return ChildNode
    FoundNode = GetNode(ChildNode.Nodes, SearchName)
    If FoundNode IsNot Nothing Then Return FoundNode
  Next
  Return FoundNode
End Function,

----

(Coloration syntaxique automatique par Kenji)





__________
Kenji
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
2
merci mais,

le paramètre suivant, je le récupère comment ?:


ByVal
 Parent As System.Windows.Forms.TreeNodeCollection

car si je passe la collectiondes nodes en paramètres, çà veut dire que je l'ai

?
non ?
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
33
Ben la collection de départ, tu l'as, c'est celle de ton TreeView. Toi tu cherche un item dans les sous-collections de cette collection.






__________
Kenji
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
2
bah, je pige pas là

où je la trouve cette treenodecollection ?
du moins comment ?
mon premier noeud s'appelle invariablement "Entités"

merci de ton aide
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
33
Alors c'est ce noeud la que tu met :
TonNeoudEntités.Nodes

Il faut savoir qua chaque node comprend une collection de nodes.





__________
Kenji
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
2
ok,
bon je commence à piger
merci beaucoup de ton aide.
par contre, dans mon treeview, j'ai des nodes qui ont le même nom, et docn, çà me checke qu'un seul à l'aide de l'appel à ta fonction suivant:

Dim a
As TreeNode = GetNode(_nodebase.Nodes, chainederecherche)

If a
IsNot
Nothing
Thena.Checked =

True

End
If

encore un peu d'aide ? merci
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
33
Bon, ben nouvelle fonction :



Private Function GetNodes(ByVal Parent As System.Windows.Forms.TreeNodeCollection, _
 ByVal SearchName As String) As System.Collections.Generic.List(Of System.Windows.Forms.TreeNode)
  Dim FoundNode As New System.Collections.Generic.List(Of System.Windows.Forms.TreeNode)
  For Each ChildNode As System.Windows.Forms.TreeNode In Parent
    If ChildNode.Name.Equals(SearchName) Then FoundNode.Add(ChildNode)
    FoundNode.AddRange(GetNodes(ChildNode.Nodes, SearchName))
  Next
  Return FoundNode
End Function,

----

(Coloration syntaxique automatique par Kenji)



Elle retourne les nodes du nom spécifier




__________
Kenji
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
2
désolé, j'ai trouvé

à remplacer dans ta fonction



If
FoundNode

IsNot



Nothing



Then



FoundNode.Checked =




True






End



If

merci beaucoup en tous cas
pas à dire, zet des pros !  :)