Refresh a treeview and expand last selected node - c#

In my application i copy a certain pdf file to the selected node, after this i want the treeview to refresh and show me the added file.
The refresh is working but it won't expand the last selected node.
How can i do a refresh but still keep the last selected node expanded, so the user can see that the pdf file is added to the folder.

The AfterSelect on the TreeView have a parameter TreeViewEventArgs e. e.Node will return the selected node. eg:
e.Node.Expand();
or
e.Node.ExpandAll();
Should you wish to expand all the nodes in the treeview. You can use the same method to expand the
I assume that you know which node you have copied it too. Use the same method to expand the node you've copied too.

Related

Prevent automatic selection of the primary TreeView node

I have multiple tabs which represent filters for a specific view. One of those tabs is a TreeView called SOTree.
There's a button to clear all filters.
If I click a node in SOTree, it highlights said node and filters the view. I can then clear all filters, which also clears the selected nodes:
this.SelectedNodes.Clear();
this.SelectedNode = null;
At first, it seems to clear the selected nodes just fine. However, when I change the focus to a different window/tab and back, the first node of the treeview will be highlighted.
This causes two issues:
The user might think that the filter is still active, filtering for the first node
Clicking the node doesn't actually activate the filter, since the selection does not change. The user will have to select a different node first.
How can I prevent this automatic and unwanted highlighting of the node?

Add a treeview item and restore tree status

This is my usecase: I've a treeview and I'm navigating them. At a certain moment I add programmatically an item.
At the moment after the item is added the tree completely collapse.
I'd like rather to have the same situation that was before the adding (the previous selected item still selected).
Is it possible?
Thanks!

select a node in treeview programmatically in windows application

i have load a tree view. i want to Traverse treeview node and expand & select a node. Expand is working fine. but select a node is not working.
private void Traverse(TreeNodeCollection nodes, string findtext)
{
foreach (TreeNode node in nodes)
{
if (node.Text.ToString().Trim() == findtext)
{
node.Expand();
node.TreeView.SelectedNode = node.NextNode;
//tvwStructureTree.SelectedNode = this.tvwStructureTree.Nodes[node.Index];
//Select a node in Treeview tvwStructureTree But not working
tvwStructureTree.SelectedNode = node;
node.TreeView.Focus();
}
Traverse(node.Nodes, findtext);
}
}
Its in windows application.
Not quite sure what's your issue is. TreeView.SelectedNode Property is the correct property.
When you set this property, the specified node is scrolled into view
and any parent nodes are expanded so that the specified node is
visible.
When the parent node or any ancestor node of the selected node is
collapsed either programmatically or through user action, the
collapsed node becomes the selected node.
Make sure that the node.TreeView is the correct TreeView instance.
node.TreeView.SelectedNode = node.NextNode;
TreeView.HideSelection Property is another property that might useful for you.
When this property is set to false, selected nodes in the TreeView
control remain highlighted in a different color than the current
selection color when the TreeView control loses focus. You can use
this property to keep items that are selected by the user visible when
the user clicks a different control on the form or moves to a
different window.
I had a similar issue. My form's ctor is given the test of a node to select.Finding the correct node was not a problem, but the tree didn't show the node as selected, since the tree control didn't have focus. merely had to use Form.ActiveControl = myTreecontrol; before setting myTreecontrol.SelectedNode
I tested exactly your own code and worked fine, both find and selection the node!
without any particular property setting for my treeview!
by the way I am using .Net 3.5 and VS 2008

ASP.NET: How to Create an Expandable Empty TreeNode

I need to populate the TreeNode.ChildNodes on the event of TreeView.TreeNodeExpanded. The problem is the node is empty before the event gets fired and it is not expandable in this case and there is no expand icon [+] showed next to it.
I want to make the node expandable in case its related object has some children without adding those children to the node.
I thought about adding a virtual child to the node and delete it when it is expanded. Are there any better options ??
Thank you.
Three steps to do the trick:
1 - Set the TreeView.ExpandDepth to 0. This eliminates the expansion of the added TreeNode objects in the TreeView and shows the expansion symbol [+] next to each TreeNode that has the TreeNode.PopulateOnDemand property set to true.
2- Set the TreeNode.PopulateOnDemand to True for each branch TreeNode. When the TreeNode.ChildNodes collection is empty, the expansion symbol [+] will be showed only next to TreeNode objects that has TreeNode.PopulateOnDemand property set to true.
3- Handle the TreeView.TreeNodePopulate event to poulate branch nodes on expansion. This event will be fired when a TreeNode - with the TreeNode.PopulateOnDemand set to true - has been expanded right before the TreeView.TreeNodeExpanded event gets fired.
I suggest editing the template of the node. Have a look at An ASP.NET AJAX TreeView control with templates.
Not sure and do not have time to try but I guess what you are after is the TreeNode.PopulateOnDemand property and TreeView.TreeNodePopulate event.

c# winform : node expand and collapse in TreeView

Is method that do it to be extended by icon in front of node without clicking node only?
If you can get a reference to a TreeNode object, you can call the following methods:
treeNode.Expand()
treeNode.Collapse()
These will expand and collapse any given node, assuming you want to do so programmatically rather than requiring the user to click the node.

Categories