TreeView - Reloading the treeView and expanding the last selected

TreeView - Reloading the treeView and expanding the last selected

Post by SmFtZXMgT » Tue, 06 Dec 2005 19:30:04


Hi,

I have a treeview that has to be refreshed due to data changes. Is it
possible to select the last node that they were viewing when the tree view
was been populated once again?

I have tried getting the selected node and then expanding it in the
refreshed tree view using expand() but it does not do it.

Thanks for any help.
 
 
 

TreeView - Reloading the treeView and expanding the last selected

Post by YmFsbWVyY2 » Wed, 07 Dec 2005 03:58:02

Are you clearing out the tree when you fresh it, or just updating the
existing nodes without removing them?

If you clear the nodes from the tree, then the selected node no longer
exists and therefore you cannot expand it. In this case you will need a path
to follow up the tree to the root, then once the tree is refreshed, you will
need to follow this path back down from the root to find the node that should
be selected and then select and expand it. Determining how you will find a
path to follow is dependent on the data stored in the tree and how it is
stored.

If you are just refreshing the existing nodes, create a TreeNode reference
and set it equal to the TreeView.SelectedNode before refreshing, then once
refreshed use the TreeNode.Expand() method from the reference you made.

private void BeginRefreshTreeView()
{
TreeNode selected = TreeView.SelectedNode();
this.RefreshTreeView();
selected.Expand();
}

private void RefreshTreeView()
{
//Do your refresh (make sure not to remove the nodes though)
}

If this doesn't help, please post an example of what is stored in the tree
and how you are refreshing it.

Chris