Public Class Form1
Private treeValues As New Dictionary(Of String, String())
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TreeView1.HideSelection = False
FillTree()
ListView1.View = View.Tile
ListView1.HideSelection = False
FillTreeValues(TreeView1.Nodes)
End Sub
Private Sub FillTree()
TreeView1.Nodes.Clear()
TreeView1.Nodes.Add("Node0", "Node0")
TreeView1.Nodes.Add("Node1", "Node1")
TreeView1.Nodes.Add("Node2", "Node2")
For Each N As TreeNode In TreeView1.Nodes
N.Nodes.Clear()
N.Nodes.Add(N.Index & " - 0", "Node " & N.Index & " - 0")
N.Nodes.Add(N.Index & " - 1", "Node " & N.Index & " - 1")
N.Nodes.Add(N.Index & " - 2", "Node " & N.Index & " - 2")
N.Expand()
Next
End Sub
Private Sub FillTreeValues(ByVal nodes As TreeNodeCollection)
For Each N As TreeNode In nodes
Dim list As New List(Of String)
list.Add("First value of " & N.Name)
list.Add("Second value of " & N.Name)
list.Add("Third value of " & N.Name)
treeValues.Add(N.Name, list.ToArray())
FillTreeValues(N.Nodes)
Next
End Sub
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
ListView1.Items.Clear()
Dim vals As String() = treeValues(e.Node.Name)
For I As Integer = 0 To vals.Length - 1
ListView1.Items.Add(vals(I))
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TreeView1.SelectedNode.Index > -1 Then
Dim items As New List(Of String)(treeValues.Item(TreeView1.SelectedNode.Name))
items.Add(TextBox1.Text)
treeValues.Item(TreeView1.SelectedNode.Name) = items.ToArray()
ListView1.Items.Add(TextBox1.Text)
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If TreeView1.SelectedNode.Index > -1 Then
If ListView1.SelectedItems.Count > 0 Then
Dim items As New List(Of String)(treeValues.Item(TreeView1.SelectedNode.Name))
items.RemoveAt(ListView1.SelectedItems(0).Index)
treeValues.Item(TreeView1.SelectedNode.Name) = items.ToArray()
ListView1.Items.RemoveAt(ListView1.SelectedItems(0).Index)
End If
End If
End Sub
End Class