Disable or Enable Context Menu Items For a TreeView

In this article I would like to show how to disable and enable context menu items for a TreeView. In some cases we need this for example we have to hide unnecessary items when clicking a specific node of a tree view.

For this use the following controls:

  1. TreeView
  2. Context Menu

Add the required Nodes for tree view and required items for context menu.

Sample Image after adding some sample data to the Form:


The important point to remember when adding nodes to a tree view is to have a necessary TAG for individual nodes. To add a TAG for the nodes follow as described below.

Right-click on the tree view to add or edit nodes; you will have the following. If you already have nodes added then you will have the option as Edit Nodes, if not then it will be Add Nodes. Select whichever one it is.


After selecting Edit nodes you will have a Tree Node editor as follows; select the desired Node to add a TAG.


Here I am assigning a TAG value to the Root Node as shown in the figure:


Like that add the required TAGS as you need.

For the context menu I added the two items ROOT and CHILD. You can add more as needed.

Code to Enable or Disable context menu items:

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
treeView1.SelectedNode = e.Node;
if (Convert.ToInt16(e.Node.Tag) == 1)
childToolStripMenuItem.Enabled = false;
rootToolStripMenuItem.Enabled = true;
if (Convert.ToInt16(e.Node.Tag) == 2)
childToolStripMenuItem.Enabled = true;
rootToolStripMenuItem.Enabled = false;

Code for showing context menu on TreeView:

private void treeView1_MouseDown(object sender, MouseEventArgs e)
if (e.Button == MouseButtons.Right)
contextMenuStrip1.Show(treeView1, e.Location);
location = e.Location;

Sample output when user clicks on Root Node:


Sample output when user clicks on Child Node:


That's how we can enable or disable the necessary context items. If you have any questions then let me know. Go through the attached code for further reference.

Happy Coding.