Bonjour
Je suis sur un Treeview qui me résiste. Il affiche un arbre de contact. Il n'a donc pas de profondeur fixée.
Je le charge initialement avec la première procédure et je continue avec la suivante à chaque développement de branche.
Mon problème est que je voudrais charger la nouvelle branche lors du clic sur la croix "expand". Pour le moment, il faut développer/réduire/redévelopper pour faire ce chargement.
A mon avis, mon problème vient de la nécessiter de sélectionner un nom. Est-il possible de renvoyer le noeud dont la croix vient d'être sélectionnée?
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 Private Sub ListBox5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox5.Click 'TreeView1.ImageList = "C:\Users\Zaratoustra\Documents\VB\ICones\bill-homme-personne-utilisateur-icone-6596-128.png" TreeView1.Nodes.Clear() TreeView1.Nodes.Add(ListBox5.Text) Dim r1 = From elt In tableLiaison Where (elt.Field(Of String)("Contact1") = ListBox5.Text Or elt.Field(Of String)("Contact2") = ListBox5.Text) Select elt For Each P In r1 If P("Contact1").ToString = ListBox5.Text Then TreeView1.Nodes(0).Nodes.Add(P("Contact2").ToString) Else TreeView1.Nodes(0).Nodes.Add(P("Contact1").ToString) End If Next For i = 0 To TreeView1.Nodes(0).GetNodeCount(False) - 1 Dim r2 = From elt In tableLiaison Where (elt.Field(Of String)("Contact1") = TreeView1.Nodes(0).Nodes(i).Text Or elt.Field(Of String)("Contact2") = TreeView1.Nodes(0).Nodes(i).Text) Select elt For Each P In r2 If P("Contact1").ToString = TreeView1.Nodes(0).Nodes(i).Text Then TreeView1.Nodes(0).Nodes(i).Nodes.Add(P("Contact2").ToString) Else TreeView1.Nodes(0).Nodes(i).Nodes.Add(P("Contact1").ToString) End If Next Next End Sub
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 Private Sub TreeView1_AfterExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterExpand If TreeView1.SelectedNode Is Nothing Then TreeView1.SelectedNode = TreeView1.Nodes(0) End If For Each n In TreeView1.SelectedNode.Nodes n.Nodes.Clear() Dim r1 = From elt In tableLiaison Where (elt.Field(Of String)("Contact1") = n.Text Or elt.Field(Of String)("Contact2") = n.Text) Select elt For Each P In r1 If P("Contact1").ToString = n.Text Then n.Nodes.Add(P("Contact2").ToString) Else n.Nodes.Add(P("Contact1").ToString) End If Next Next End Sub
Partager