该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
NodeAllExpanded TreeView1
End Sub
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Call AllChildSynchro(Node)
Call AllMaterSynchro(Node)
End Sub
'// -选中下级-
Private Sub AllChildSynchro(ByVal NodeChoose As Object)
On Error Resume Next
Dim lNextLoop As Long
Dim ObjChildren As Object
If CBool(NodeChoose.Children > 0) Then
Set ObjChildren = NodeChoose.Child
For lNextLoop = 1 To NodeChoose.Children
ObjChildren.Checked = NodeChoose.Checked
If ObjChildren.Children > 0 Then Call AllChildSynchro(ObjChildren)
Set ObjChildren = ObjChildren.Next
Next lNextLoop
End If
End Sub
'// -取消上级-
Private Sub AllMaterSynchro(ByVal NodeChoose As Object)
On Error Resume Next
If Not NodeChoose.Checked Then If TypeName(NodeChoose.Parent) = "INode " Then NodeChoose.Parent.Checked = False
If Not NodeChoose.Checked Then If TypeName(NodeChoose.Parent) = "INode " Then Call AllMaterSynchro(NodeChoose.Parent)
End Sub
'// -节点张开-
Private Sub NodeAllExpanded(ByVal ObjTvw As Object)
On Error Resume Next
Dim ObjChild As Object
For Each ObjChild In ObjTvw.Nodes
ObjChild.Expanded = IIf(ObjChild.Key = ObjChild.Root.Key, False, True)
ObjChild.Root.Expanded = IIf(ObjChild.Key = ObjTvw.Nodes(ObjTvw.Nodes.Count).Key, True, False)
Next ObjChild
End Sub