Treeview ajouter un noeud sans connaitre lindex du parent

tump Messages postés 82 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 6 avril 2006 - 31 déc. 2004 à 10:13
cs_darktoto Messages postés 14 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 29 août 2006 - 20 janv. 2005 à 21:39
bonjour,

je suis en vbnet

je souhaite ajouter un sous-noeud a ma treeview
jai 2 noeuds principaux dont un appelé "envoyés"

dans ce noeud jai 3 sous noeuds r1,r2,r3

je souhaite par exemple ajouter un sous-sous-noeud a r3 :

treeview1.nodes("envoyés").nodes("R3").nodes.add("toto")

il me demande de renseigner des index en parametre, il ne veut pas de que jappelle les noeuds par leur nom !!!

pourquoi ??

merci de votre aide

poum :-)

1 réponse

cs_darktoto Messages postés 14 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 29 août 2006
20 janv. 2005 à 21:39
En effet, avec le nom cela ne fonctionne pas. Les index peuvent t'être utiles, mais cela te génerais t'il de stocker tes noeuds r1,r2 et r3 dans des variables globales à la classe dans la quelle tu travaille, pour n'avoir qu'à exécuter r3.Nodes.Add("toto") ?

Si tu veux absolument utiliser leur noms, qui est leur label en fait (propriété Text), crée ton propre "indexeur" de Noeud:
1. Tu dérive la classe TreeNode
2. Tu lui crée une méthode GetNode(string name) qui retourne TreeNode
3. Tu lui crée une fonction IndexOf(string name) qui recherche dans la liste des sous-noeuds le noeud qui correspond, et en retourne l'index.
4. Ta fonction GetNode s'écrit alors return Nodes[IndexOf(name)].
5. Tu crée de même une classe dérivée de TreeView, avec les mêmes méthodes GetNode, et IndexOf
6. Tu crée tes noeuds à partir de ta classe dérivée, et tu utilise GetNode sur l'arbre, et tes noeuds pour obtenir : treeview1.GetNode("envoyés").GetNode("R3").GetNode.Add("toto")

Voila, je n'ai pas fait de hors sujet j'espère?
0
Rejoignez-nous