自动选择/取消选择Excel-VBA的Treeview的父复选框。
我从以下来源获得了一个代码:
https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=48560&lngWId=1
http://www.vbforums.com/showthread.php?249131-VB-Check-All-Treeview-Children
假设Treeview为Treeview1,我将两者结合并编写了代码。
Polygon
我希望代码最少。
答案 0 :(得分:0)
我正在做类似的事情。这应该适合您的情况。之所以有效,是因为第一个子节点将始终位于当前节点之后的索引处。递归函数将在下一个子项遍历其余子项后返回其索引。
这仅在您按树中显示的方式加载节点时起作用。
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
CheckChildAndGetNextIndex Node,Node.Checked
End Sub
Private Function CheckChildAndGetNextIndex(currentNode As Node, val as boolean) As Integer
Dim i As Integer
currentNode.Checked = val
CheckChildAndGetNextIndex = currentNode.index + 1
For i = 1 To currentNode.Children
CheckChildAndGetNextIndex = CheckChildAndGetNextIndex(TreeView1.Nodes(CheckChildAndGetNextIndex), val)
Next
End Function