Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / Objekte / Controls / TreeViewNodes

TreeView-Knoten in Feld sammeln

Die folgende Funktion gibt ein Variant-Array zurück, welches alle Knoten des übergebenen TreeView-Controls enthält. Die Reihenfolge der Knoten im Feld ist in order, d.h. den aufgeklappten Baum von oben nach unten gesehen.
Function TreeViewNodes( _
    ByRef tvw As TreeView) As Variant
  'Deklarationen:
  Dim Nodes As Variant
  Dim Node As Node
  Dim i As Long
  
  With tvw
    'Ersten Knoten merken:
    ReDim Nodes(1 To .Nodes.Count)
    Set Node = .Nodes(1)
    Set Nodes(1) = Node
    
    For i = 2 To .Nodes.Count
      'Gibt es Kinder?
      If Node.Children Then
        'Dann das erste Kind nehmen:
        Set Node = Node.Child
      Else
        'Sonst nächsten Nachfolger suchen:
        Do While Node.Next Is Nothing
          Set Node = Node.Parent
        Loop
        Set Node = Node.Next
      End If
      'Knoten merken:
      Set Nodes(i) = Node
    Next i
  End With
  
  TreeViewNodes = Nodes
End Function

© Jost Schwider, 07.09.2000-07.09.2000 - http://vb-tec.de/tvwnodes.htm