How to display contextmenu only for certain nodes when right clicked in WinForms TreeViewAdv?
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