Reputation: 27342
Why I right click on a node in my treeview the focus moves to this node and then immediately back to the previously selected node. Is there some way that I can allow the right click to select the node?
Upvotes: 15
Views: 19767
Reputation: 942348
That's because the highlight color performs two duties, it shows the selected node and shows the focused node. If you don't do anything with the right-click event then it jumps back to the selected node. The workaround is to select the node:
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
if (e.Button == MouseButtons.Right) treeView1.SelectedNode = e.Node;
}
Plus anything else you want to do, usually displaying a context menu.
Upvotes: 34
Reputation: 27342
Apologies I jumped the gun slightly I found how to do this as follows:
Private Sub TreeView1_NodeMouseClick(sender As Object, e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
If e.Button = Windows.Forms.MouseButtons.Right Then
TreeView1.SelectedNode = e.Node
End If
End Sub
Shouldn't the control do this as standard though?
Upvotes: 4