Category / Section
How to avoid showing context menu if the user clicks on empty space on the WinForms TreeViewAdv?
1 min read
Avoid showing context menu
If the user clicks on the empty space on the treeViewAdv, the appearence of the context menu can be avoided by handling treeViewAdv1_MouseDown and treeViewAdv1_MouseUp Event handler. 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-mousedown.
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: https://help.syncfusion.com/windowsforms/treeview/treenodeadvcustomization#rmousedownnode