How to avoid showing context menu if the user clicks on empty space on the WinForms TreeViewAdv?
Avoid showing context menu
If the user clicks on the empty space on the TreeViewAdv, the appearance of the context menu can be avoided by handling MouseDown and MouseUp events. With the help of this, the user can know which node is being edited currently. Here, the Selected node is set to RMouseDownNode. The RMouseDownNode property gets or sets the node on which the user did a right-mouse down.
C#
private void treeViewAdv1_MouseDown(object sender, MouseEventArgs e)
{
this.treeViewAdv1.BeginUpdate();
if (this.treeViewAdv1.RMouseDownNode != null)
{
if (e.Button == MouseButtons.Right &&
this.treeViewAdv1.RMouseDownNode.TextBounds.Contains(this.treeViewAdv1.LastMousePositionToClient()))
{
this.treeViewAdv1.SelectedNode = this.treeViewAdv1.RMouseDownNode;
}
}
}
private void treeViewAdv1_MouseUp(object sender, MouseEventArgs e)
{
this.treeViewAdv1.EndUpdate(true);
}VB
Private Sub treeViewAdv1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
Me.treeViewAdv1.BeginUpdate()
If Not Me.treeViewAdv1.RMouseDownNode Is Nothing Then
If e.Button = MouseButtons.Right AndAlso
Me.treeViewAdv1.RMouseDownNode.TextBounds.Contains(Me.treeViewAdv1.LastMousePositionToClient()) Then
Me.treeViewAdv1.SelectedNode = Me.treeViewAdv1.RMouseDownNode
End If
End If
End Sub
Private Sub treeViewAdv1_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
Me.treeViewAdv1.EndUpdate(True)
End SubReference link: rmousedownnode