Treeview windowstate save and restore

  • Thread starter Thread starter Co
  • Start date Start date
C

Co

Hi All,

I have this Treeview of which I want to save the window status when
I'm doing some action with the nodes.
After the action I want to restore the windowstate.
I save the windowstate in a Dictionary. The code I have does work
except that it doesn't expand the nodes
under the root node. All nodes under there are collapsed or expanded
the way I saved them.

What do I need to also save the expand or collapse for the nodes under
the root node?

Private tt As New Dictionary(Of String, Boolean)

Public Sub SaveTreeView(ByVal treeview As TreeView)

For Each node As TreeNode In treeview.Nodes
SaveTreeState(node)
Next

End Sub
Public Sub RestoreTreeView(ByVal treeview As TreeView)

For Each node As TreeNode In treeview.Nodes
RestoreTreeViewExpandedState(node)
Next

End Sub
Private Sub RestoreTreeViewExpandedState(ByVal objTreeNode _
As TreeNode)

Dim objChildTreeNode As Node

For Each objChildTreeNode In objTreeNode.Nodes
Dim ID As String = objChildTreeNode.row("ID").ToString
RestoreTreeViewExpandedState(objChildTreeNode)
If tt.ContainsKey(ID) Then
If tt(ID) Then
objChildTreeNode.Expand()
Else
objChildTreeNode.Collapse()
End If
End If

Next

End Sub

Private Function SaveTreeState(ByVal objTreeNode _
As TreeNode) As Dictionary(Of String, Boolean)

Dim objChildTreeNode As Node

For Each objChildTreeNode In objTreeNode.Nodes
Dim ID As String = objChildTreeNode.row("ID").ToString
SaveTreeState(objChildTreeNode)
tt.Add(ID, objChildTreeNode.IsExpanded)
Next

Return tt
End Function

Regards
Marco
The Netherlands
 
Back
Top