我做两个treeview控件,选定某一个节点移到另一个节点,同时移动它的子结点,并在原先的控件中删除,请问怎样找到它的子结点呢?

解决方案 »

  1.   

    递归遍历树的所有节点,判断node.parent是不是上级节点就可以了
      

  2.   

    不用遍历所有节点
    对选中节点,通过Child可获得其第一个子节点,然后通过子节点的Next属性可逐步找到所有同级子节点,查找中向下层搜索时,可用递归。
      

  3.   

    直接统计不好办,遍历时可以统计,而且通过Children属性可判断某一节点的下一级节点总数。
      

  4.   

    对选中节点的Children遍历,然后一层一层拷贝过去,然后删除原树节点即可
    遍历递归算法
    Private Sub AddChooseNodes(ByVal NodeChoosed As Object)
        Dim NodeChild As MSComctlLib.Node
        If NodeChoosed.children <= 0 Then
            Exit Sub
        End If
        Set NodeChild = NodeChoosed.Child
        Do Until NodeChild Is Nothing
            If NodeChild.children > 0 Then
                do it '拷贝节点到另外一颗树
                AddChooseNodes NodeChild, ArrNode
            Else
                do it '拷贝节点到另外一颗树
            End If
            Set NodeChild = NodeChild.Next
        Loop
    End Sub
      

  5.   

    AddChooseNodes NodeChild, ArrNode
    要去掉,ArrNode,那是我使用的其他变量,呵呵