I have overridden the TreeView
events BeforeSelect
and AfterSelect
. Both get called when clicking on a node in the tree. You can see in the code below that I'm outputting the name of the tree node in each method. Suppose the tree looks like so:
UpperNode1
--LowerNode1a
--LowerNode1b
UpperNode2
--LowerNode2a
--LowerNode2b
and suppose LowerNode1a is currently selected. When clicking then on LowerNode1b, eventArgs.Node.Name is "LowerNode1b" in both methods.
I was hoping that in the BeforeSelect
, that eventArgs.Node.Name
would be "LowerNode1a" because I wanted to do some work on that node upon leaving it.
How can I do this?
private void trv_BeforeSelect(object sender, TreeViewCancelEventArgs eventArgs)
{
System.Diagnostics.Trace.WriteLine("trvApproval_BeforeSelect(): eventArgs.Node.Name: " + eventArgs.Node.Name);
}
private void trv_AfterSelect(object sender, TreeViewEventArgs eventArgs)
{
System.Diagnostics.Trace.WriteLine("trvApproval_AfterSelect(): eventArgs.Node.Name: " + eventArgs.Node.Name);
}
Edit:
The sender
parameter is a TreeView
object. Unfortunately SelectedNode
is null. Strangely, there is a member prevHoveredNode
(which has a valid value even) but not a prevSelectedNode
.