Pilosite
Messages postés2Date d'inscriptionmardi 14 décembre 2004StatutContributeurDernière intervention 5 décembre 2006
-
5 déc. 2006 à 10:33
Pilosite
Messages postés2Date d'inscriptionmardi 14 décembre 2004StatutContributeurDernière intervention 5 décembre 2006
-
5 déc. 2006 à 14:20
Bonjour à tous,
je galère sur un problème de treeview dont je n'arrive pas à trouver une solution simple et efficace.
J'ai un fichier texte de la forme :
1:Toto
1:titi
2:tata
2:tutu
3:blabla
2:bobo
1:keke
...
où le chiffre représente l'ordre hierarchique.
Je souhaite, à partir de ce fichier, générer un TreeView (.NET 2.0,
Winform) qui aura la tête suivante (par rapport à l'exemple ci dessus)
[] Toto
[] Titi
...[] tata
...[] tutu
......[] blabla
...[] bobo
[] keke
en sachant que j'ai x niveau de sous noeuds.
J'ai regardé des exemples sur le net qui tourne souvent autour du file
system, mais je n'ai pas trouvé de solution pour faire ce traitement.
Pas de pb pour la lecture du fichier texte, le split des valeurs,
etc... c'esg vraiment sur la construction du treeview que je sèche.
Private Sub AjouterUnNoeud(ByVal pniveau As Integer, ByVal psTexte As String)
'noeud racine ou 1er appel : ajout à la suite à la racine !
If pniveau <= 1 Or TreeView1.Nodes.Count <= 0 Then
TreeView1.Nodes.Add(psTexte)
Exit Sub
End If
Dim node As TreeNode
'recup du dernier noeud racine ajouté
node = TreeView1.Nodes(TreeView1.Nodes.Count - 1)
'recup du dernier parent du niveau juste supérieur à celui à ajouter
For i As Integer = 1 To pniveau - 2
If node.Nodes.Count > 0 Then
node = node.Nodes(node.Nodes.Count - 1)
End If
Next
'ajout du nouveau noeud enfant
node.Nodes.Add(psTexte)
End Sub
ça donne ça : (si l'image passe bien)
Note : la fonction est un peu "brute", reste à ajouter les tests, etc. ...