Bonjour
Voilà mon problème.
j'ai un tableau qui contient des chaines de caractères séparées par des "." Chaque point est un élément du node.
Mon code ci dessous donne le résultat suivant :
a
+--b
+---c
+----d
a
+--f
+---g
+----h
a
+--i
+---g
+----h
b
+--f
+---g
+-----h
je cherche a voir comment faire pour mettre en forme comme ci dessous je veux que tout ce qui commence par la même chaine soit regroupé (ne pas dupliquer le "a" dans mon exemple)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 Public Class Form1 Dim _Alias(3) As String Dim NodeParent As New TreeNode Public Sub New() ' Cet appel est requis par le concepteur. InitializeComponent() ' Ajoutez une initialisation quelconque après l'appel InitializeComponent(). NodeParent = TV2.Nodes.Add("Racine") End Sub Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAdd.Click Add_Value() End Sub Private Sub Add_Value() Try _Alias(0) = "a.b.c.d" _Alias(1) = "a.f.g.h" _Alias(2) = "a.i.g.h" _Alias(3) = "b.f.g.h" For nb As Integer = 0 To _Alias.Length - 1 Dim Ret() As String = Split(_Alias(nb), ".") If Ret IsNot Nothing Then For i As Integer = 0 To Ret.Length - 1 Dim nod As TreeNode = New TreeNode nod.Name = Ret(i) nod.Text = Ret(i) nod.Tag = Ret(i) TV2.SelectedNode.Nodes.Add(nod) TV2.SelectedNode = nod Next TV2.SelectedNode = NodeParent TV2.SelectedNode.BackColor = Color.Red End If Next Catch ex As Exception 'Gestion des erreur Debug.Print(ex.Message) End Try End Sub Private Function BacktoRoot(e As TreeNode) As TreeNode If e.Parent IsNot Nothing Then MessageBox.Show("parent node : " & vbLf + e.Parent.Text) BacktoRoot(e.Parent) Return Nothing Else MessageBox.Show("root: " & vbLf + e.Text) Return e End If End Function End Class
a
+--b
+---c
+----d
+--f
+---g
+----h
+--i
+---g
+----h
b
+--f
+---g
+-----h
Existe t'il une méthode ?
Merci d'avance
Olivier
Partager