Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Dim m_Node As Node
'On Error Resume Next
If Not (Node.Parent Is Nothing) Then
If Node.Checked = True Then
Node.Parent.Checked = True
End If
End If
If Node.Children > 0 And Node.Checked = True Then
Node.Expanded = True
Node.EnsureVisible
Set m_Node = Node.Child
Set m_Node = m_Node.FirstSibling
m_Node.Checked = True
Do While Not (m_Node Is Nothing)
Set m_Node = m_Node.Next
If Not (m_Node Is Nothing) Then
m_Node.Checked = True
End If
Loop
ElseIf Node.Children > 0 And Node.Checked = False Then
Node.Expanded = False
Node.EnsureVisible
Set m_Node = Node.Child
Set m_Node = m_Node.FirstSibling
m_Node.Checked = False
Do While Not (m_Node Is Nothing)
Set m_Node = m_Node.Next
If Not (m_Node Is Nothing) Then
m_Node.Checked = False
End If
Loop
End If
End Sub