我又现成的通用代码:
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
For Each nd As WinForm.TreeNode In e.node.Nodes '同步子节点选中状态
nd.Checked = e.Node.Checked
For Each nd1 As WinForm.TreeNode In nd.Nodes '同步子节点选中状态
nd1.Checked = nd.Checked
For Each nd2 As WinForm.TreeNode In nd1.Nodes '同步子节点选中状态
nd2.Checked = nd1.Checked
Next
Next
Next
If e.node.ParentNode IsNot Nothing Then '去掉父节点选中状态
e.node.ParentNode.Checked = False
If e.node.ParentNode.ParentNode IsNot Nothing Then '去掉父节点选中状态
e.node.ParentNode.ParentNode.Checked = False
If e.node.ParentNode.ParentNode.ParentNode IsNot Nothing Then '去掉父节点选中状态
e.node.ParentNode.ParentNode.ParentNode.Checked = False
End If
End If
End If