Category / Section
How to display contextmenu only for certain nodes when right clicked in WinForms TreeViewAdv?
1 min read
Show the context menu for particular nodes
The context menu can be displayed for certain nodes, by setting the menuItem's Visiblity to true in the contextMenu1_Popup event handler for that particular nodes.
C#
private void contextMenu1_Popup(object sender, System.EventArgs e) { this.rightMouseDownNodeCached=this.treeViewAdv1.RMouseDownNode; // This will be null if the user clicked in the empty portion of the tree. this.treeViewAdv1.SelectedNode= this.treeViewAdv1.RMouseDownNode; if(this.treeViewAdv1.RMouseDownNode == null) { this.menuItem1.Visible = false; } else { if(treeViewAdv1.SelectedNode.Text=="Node0" ||treeViewAdv1.SelectedNode.Text=="Node2"|| treeViewAdv1.SelectedNode.Text=="Node4"||treeViewAdv1.SelectedNode.Text=="Node6") { this.menuItem1.Visible = true; } else { this.menuItem1.Visible = false; } } }
VB
Private Sub contextMenu1_Popup(ByVal sender As Object, ByVal e As System.EventArgs) Me.rightMouseDownNodeCached=Me.treeViewAdv1.RMouseDownNode ' This will be null if the user clicked in the empty portion of the tree. Me.treeViewAdv1.SelectedNode= Me.treeViewAdv1.RMouseDownNode If Me.treeViewAdv1.RMouseDownNode Is Nothing Then Me.menuItem1.Visible = False Else If treeViewAdv1.SelectedNode.Text="Node0" OrElse treeViewAdv1.SelectedNode.Text="Node2" OrElse treeViewAdv1.SelectedNode.Text="Node4" OrElse treeViewAdv1.SelectedNode.Text="Node6" Then Me.menuItem1.Visible = True Else Me.menuItem1.Visible = False End If End If End Sub