Probleme d'ajout de Nodes à un TreeView

Résolu
Morveus Messages postés 19 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 12 juin 2007 - 23 mai 2007 à 08:43
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 - 23 mai 2007 à 12:43
Bonjour,

J'ai un petit problème: j'ai créé un formulaire à deux champs qui permet d'ajouter des données sous forme de nodes dans un TreeView. Ce formulaire, en gros, permet d'associer une description à une adresse IP pour les besoins d'une base de données. Si l'utilisateur souhaite ne pas saisir de description, seule l'adresse IP est affichée. Le TreeView affiche des informations sur un cluster de serveurs précédemment sélectionné: sa catégorie (exemple "Cluster NLB"), son nom, ses adresses IP, ses adresses Intranet (cluster.entreprise.fr), et les noms des noeuds du cluster (suite d'acronymes).

Le TreeView comporte donc ces noeuds:

+Catégorie
   + Nom Cluster
      + Adresses IP du Cluster
            + Description Adresse1
                  Adresse IP1
            + Description Adresse2
                  Adresse IP2
            Adresse IP3 (pas de description)
            ...
      + Adresses Intranet du Cluster
            Adresse1
            Adresse2
            ...
      + Noeuds du Cluster
            Noeud1
            Noeud2
            ...

Si l'utilisateur souhaite ajouter une adresse IP, il clique donc sur mon petit bouton "Ajouter", il saisit une adresse dans un champ et une description, puis il valide. Le script analyse: s'il n'y a pas de description, j'ajoute donc l'IP directement sous le noeud "Adresses IP du Cluster" (comme l'IP3 dans mon exemple). Si en revanche il y a une description, j'ajoute d'abord la description, et ensuite l'adresse IP en tant que noeud enfant sous la description en question.

Cela fonctionne pour un ajout simple (adresse IP sans description), mais alors impossible de lui faire ajouter l'IP comme enfant apres avoir ajouté la description!

Tree = mon TreeView
DesBox = TextBox contenant la description
IPBox = TextBox contenant l'IP
ClustersProperties = le formulaire contenant Tree

---------

If

DesBox.Text =
Nothing
Then
      ClustersProperties.Tree.Nodes(0).Nodes(0).Nodes(0).Nodes.Add(IPBox.Text)

Else
      ClustersProperties.Tree.Nodes(0).Nodes(0).Nodes(0).Nodes.Add(DesBox.Text)

      Dim LastNode
As
Integer = ClustersProperties.Tree.Nodes(0).Nodes(0).Nodes(0).Nodes.Count - 1

      Me.Text = LastNode
      ClustersProperties.Tree.Nodes(0).Nodes(0).Nodes(0).Nodes(LastNode).Nodes.Add(IPBox.Text)

End
If

---------

Dans le cas où DesBox.Text = Nothing, tout fonctionne parfaitement, je peux bien ajouter un noeud en "0,0,0" (c'est à dire Catégorie \ Nom du Cluster \ Adresses IP du Cluster).
En revanche, lorsque DesBox.Text contient un texte, la machine se contente d'ajouter la description, mais la ligne juste avant le End If ne produit rien (mais il n'y a pas d'erreur!).
La variable LastNode permet de retrouver l'index de du noeud qui vient d'être ajouté (j'ai vérifié la valeur de cette variable, et elle est correcte dans chaque cas que j'ai testé!).
Autre petite chose: si je remplace "LastNode" par un entier qui symbolise un noeud déjà existant, l'adresse IP est bien ajoutée sous ce noeud !

Je ne comprends pas vraiment le problème, puisque tout me semble logique (mise à part justement cette histoire de noeud qui ne veut pas se créer en tant qu'enfant sous un autre noeud créé 2 lignes de code avant lui...)

Quelqu'un pourrait-il me venir en aide?

Merci d'avance, je galère pour pas grand chose ^^

2 réponses

Morveus Messages postés 19 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 12 juin 2007
23 mai 2007 à 09:38
Arf !
J'ai trouvé mon erreur, et croyez moi je galere depuis un moment!
Comme je n'affichais pas les "+" devant les lignes (mon TreeView doit ressembler à un schéma), je ne pouvais pas m'en rendre compte...  Mais tout fonctionnait bien, et mon IP se retrouvait sous la description... En collapsed ^^

Avec un ExpandAll() j'ai réglé le problème...

Merci quand même à ceux qui ont pu lire mon message et qui ont commencé à y réfléchir lol
3
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
23 mai 2007 à 12:43
Je me reconnais dans ta situation; j'ai déjà vécu pareille situation d'où on ne sort pas très malin .  

Chercher une erreur alors qu'il n'y en a pas

Christophe
0
Rejoignez-nous