TreeView 填充好后,使用treeview.nodes.item(I) ,i 顺次加一,是怎样的遍历方法,是广度优先吗,

解决方案 »

  1.   


    Private Sub traVal(nodex As Node)
    '在Treeview中递归遍历鼠标点击的节点及其子节点
        Dim count As Integer
        Dim ChildNode As Node
        Dim J As Integer
        
        count = nodex.Children
        
        If Not (nodex.Parent Is Nothing) Then
            If nodex.Parent.Parent Is Nothing Then
                If Len(nodex.Text) < 4 Then
                    whereTree.ChildNodes.Add "0." & ordNode, nodex.Text, nodex.Tag, "0", 1
                Else
                    whereTree.ChildNodes.Add "0." & ordNode, nodex.Text, nodex.Tag, "0", 0
                End If
            Else
                If Len(nodex.Text) < 4 Then
            '        whereTree.ChildNodes.Add Right(nodex.Key, Len(nodex.Key) - 4), nodex.Text, nodex.Tag, nodex.Parent.Key, 1
                    whereTree.ChildNodes.Add nodex.Parent.Key & "." & ordNode, nodex.Text, nodex.Tag, nodex.Parent.Key, 1
                Else
                
                    whereTree.ChildNodes.Add whereTree.Key & "." & ordNode, nodex.Text, nodex.Tag, nodex.Parent.Key, 0
                End If
            End If
        End If
        
        If count > 0 Then
        
            Set ChildNode = nodex.Child        traVal ChildNode
            
            For I = 2 To count
              Set ChildNode = ChildNode.Next          traVal ChildNode
            Next
            
        End IfEnd Sub
      

  2.   

    Private Sub Command1_Click()
        Dim mnode As Node
        List1.Clear
        List1.Refresh
        For Each mnode In Me.TreeView1.Nodes
            List1.AddItem mnode.Text
        Next
    End Sub
      

  3.   

    搜一下,有很多类似问题的,给你的例子:
    Private Sub CheckChild(ByVal Node As MSComctlLib.Node, _
    Optional ByVal bNext As Boolean = True, Optional ByVal bChild As Boolean = True)
    'Code
       If Not Node Is Nothing Then
            nCount = nCount + 1
            If Node.Children And bChild Then
                Call CheckChild(Node.Child, True, True)  '对子节点
            End If
            If bNext Then
              Call CheckChild(Node.Next, True, bChild)   '对同一层节点
            End If
       End If
    End Sub
      

  4.   

    用循环!
    For Each Node In TreeView1.Nodes
        你要执行的事件
     Next