Articles in this section

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 Sub

Reference link: rmousedownnode

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Access denied
Access denied