Option Explicit
Private Sub Command1_Click()
Dim tvwItem As MSComctlLib.Node, tvwSubItem As MSComctlLib.Node
Dim tvwSubSubItem As MSComctlLib.Node
Dim a As Long, b As Long, c As Long
With TreeView1
.Appearance = cc3D
.Checkboxes = True
.LineStyle = tvwTreeLines
With .Nodes
Set tvwItem = .Add(, , "Root")
tvwItem.Text = "Parent"
tvwItem.Tag = "Root"
For a = 1 To 10
Set tvwItem = .Add("Root", tvwChild, "Item " & a)
tvwItem.Text = "Child " & a
tvwItem.Bold = (a Mod 3)
tvwItem.Checked = (a Mod 2)
tvwItem.ForeColor = (25 * a)
tvwItem.Tag = "ToolTip Text - " & tvwItem.Text
For b = 1 To 5
Set tvwSubItem = .Add(tvwItem.Key, tvwChild, a & "SubItem " & b)
tvwSubItem.Text = "GrandChild " & b
tvwSubItem.Tag = "ToolTip Text - " & tvwSubItem.Text
If b Mod 3 Then
For c = 1 To 3
Set tvwSubSubItem = .Add(tvwSubItem.Key, tvwChild, a & "SubSubItem " & b & "-" & c)
tvwSubSubItem.Text = "Great GrandChild " & c
tvwSubSubItem.Tag = "ToolTip Text - " & tvwSubSubItem.Text
Next c
End If
Next b
Next a
End With
For Each tvwItem In .Nodes
tvwItem.Expanded = (tvwItem.Key = "Root") ' Will expand all children root nodes
Next
.Nodes.Item("Root").Selected = True ' Will ensure that root node is visible
End With
Set tvwItem = Nothing
Set tvwSubItem = Nothing
Set tvwSubSubItem = Nothing
End Sub
Private Sub TreeView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim tvwItem As MSComctlLib.Node
Set tvwItem = TreeView1.HitTest(x, y)
If Not (tvwItem Is Nothing) Then TreeView1.ToolTipText = tvwItem.Tag
Set tvwItem = Nothing
End Sub
Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim tvwItem As MSComctlLib.Node
Set tvwItem = TreeView1.SelectedItem
If Not (tvwItem Is Nothing) Then Label1.Caption = tvwItem.Text
Set tvwItem = Nothing
End Sub