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

vercomax 548 Messages postés mercredi 28 juillet 2004Date d'inscription 11 septembre 2013 Dernière intervention - 16 déc. 2006 à 15:43 - Dernière réponse : vercomax 548 Messages postés mercredi 28 juillet 2004Date d'inscription 11 septembre 2013 Dernière intervention
- 16 déc. 2006 à 16:52
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 16 déc. 2006 à 16:13
3
Merci
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

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de Charles Racaud
vercomax 548 Messages postés mercredi 28 juillet 2004Date d'inscription 11 septembre 2013 Dernière intervention - 16 déc. 2006 à 16:27
0
Merci
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 ?
Commenter la réponse de vercomax
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 16 déc. 2006 à 16:29
0
Merci
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
Commenter la réponse de Charles Racaud
vercomax 548 Messages postés mercredi 28 juillet 2004Date d'inscription 11 septembre 2013 Dernière intervention - 16 déc. 2006 à 16:31
0
Merci
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
Commenter la réponse de vercomax
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 16 déc. 2006 à 16:34
0
Merci
Alors c'est ce noeud la que tu met :
TonNeoudEntités.Nodes

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





__________
Kenji
Commenter la réponse de Charles Racaud
vercomax 548 Messages postés mercredi 28 juillet 2004Date d'inscription 11 septembre 2013 Dernière intervention - 16 déc. 2006 à 16:44
0
Merci
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
Commenter la réponse de vercomax
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 16 déc. 2006 à 16:51
0
Merci
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
Commenter la réponse de Charles Racaud
vercomax 548 Messages postés mercredi 28 juillet 2004Date d'inscription 11 septembre 2013 Dernière intervention - 16 déc. 2006 à 16:52
0
Merci
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 !  :)
Commenter la réponse de vercomax

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.