在程序中checkboxes=true ,希望实现当上一个节点被选中时,则该节点的子节点也全部选中,如果子节点还有子节点也同样选中

解决方案 »

  1.   

    Option ExplicitPrivate Sub Form_Load()
    TreeView1.Checkboxes = True
    Dim i As Long, j As Long
     For i = 1 To 5
      TreeView1.Nodes.Add , , "A" & i, "A" & i
     Next
     
     For i = 1 To 5
       For j = 1 To 10
          TreeView1.Nodes.Add "A" & i, tvwChild, , "B" & i & j
       Next
     Next
     
     TreeView1.Nodes.Add 12, tvwChild, , "fvf"
     
    End Sub
    Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
       
       If Not Node.Child Is Nothing Then
           SetCheck Node.Child, Node.Checked
           Node.Expanded = True
        End If
    End SubPrivate Function SetCheck(ByVal Node As MSComctlLib.Node, ByVal Checked As Boolean)
      If Not Node Is Nothing Then
           Node.Checked = Checked
      Else
        Exit Function
      End If
       SetCheck Node.Child, Checked
       SetCheck Node.Next, Checked
    End Function