Manchmal ist es notwendig, den Inhalt eines
TreeView-Steuerelements komplett neu einzulesen. Dabei gehen jedoch
alle Informationen darüber verloren, welche Zweige zuvor geöffnet
gewesen sind.
Die Klasse clsStoreTree sichert den aktuellen Zustand der
Baumstruktur vor dem Neueinlesen und restauriert ihn auf Wunsch
anschließend wieder. In einer Collection werden beim Sichern über
die Methode Store die Schlüssel (Keys) aller expandierten Knoten
abgelegt. Beim Restaurieren wird anhand der Schlüssel versucht, die
jeweiligen Knoten wiederzufinden und deren Expanded-Eigenschaft auf
True zu setzen. Knoten, die nicht mehr vorhanden sind oder deren
Schlüssel sich geändert hat, werden einfach übersprungen.
Zusätzlich merkt sich die Klasse den Schlüssel des zuletzt
selektierten Knotens. Über den optionalen Parameter RestoreSelected
der Methode Restore geben Sie an, ob dieser wieder selektiert werden
soll.
Private mNodeKeys As Collection
Private mSelectedNode As String
Public Sub Store(tvw As TreeView)
Dim nNode As Node
Set mNodeKeys = New Collection
With mNodeKeys
For Each nNode In tvw.Nodes
If nNode.Expanded Then
.Add nNode.Key
End If
Next
End With
With tvw
If Not (.SelectedItem Is Nothing) Then
mSelectedNode = .SelectedItem.Key
End If
End With
End Sub
Public Sub Restore(tvw As TreeView, _
Optional ByVal RestoreSelected As Boolean)
Dim l As Long
If mNodeKeys Is Nothing Then
Exit Sub
End If
On Error Resume Next
With tvw
For l = 1 To mNodeKeys.Count
.Nodes(mNodeKeys(l)).Expanded = True
Next
With .Nodes(mSelectedNode)
.Selected = RestoreSelected
End With
End With
End Sub
 |
|
 |
Die Klasse clsStoreTree sichert den
sichtbaren Zustand der Baumstruktur eines
TreeView-Steuerelements
|

|