Vikas Kunte
Vikas Kunte

Reputation: 731

Adding submenu to a particular menuitem of contextmenu strip

I have a contextmenu strip in which menu items will be populated based on certain condition.

Ex:

for the condition1:

myContextMenuStrip.Items.Clear();
myContextMenuStrip.Items.Add("Item title", null, myClickHandler);
myContextMenuStrip.Items.Add("Item Status", null, myClickHandler);
myContextMenuStrip.Items.Add("Item Variables", null, myClickHandler);

Condition2:

myContextMenuStrip.Items.Clear();
myContextMenuStrip.Items.Add("Item Status", null, myClickHandler);

For the condition1 to add a submenu to ItemStatus i use

(myContextMenuStrip.Items[1] as ToolStripMenuItem).DropDownItems.Add("Submenu1", null, new EventHandler(gridcontextsubMenu_ItemClicked));
(myContextMenuStrip.Items[1] as ToolStripMenuItem).DropDownItems.Add("Submenu2", null, new EventHandler(gridcontextsubMenu_ItemClicked));

For the condition2 to add a submenu to ItemStatus i use

(myContextMenuStrip.Items[0] as ToolStripMenuItem).DropDownItems.Add("Submenu1", null, new EventHandler(gridcontextsubMenu_ItemClicked));
(myContextMenuStrip.Items[0] as ToolStripMenuItem).DropDownItems.Add("Submenu2", null, new EventHandler(gridcontextsubMenu_ItemClicked));

But i need a general way to add submenu to the menu item ItemStatus.

Kindly share the answer

Upvotes: 1

Views: 3801

Answers (1)

Mike Cowan
Mike Cowan

Reputation: 919

The Items property for a ContextMenuStrip returns a ToolStripItemCollection which allows you to use the indexer with either an index number or name. So, you can use the item name for Items. For example:

(myContextMenuStrip.Items["Item Status"] as ToolStripMenuItem).DropDownItems.Add("Submenu1", null, new EventHandler(gridcontexsubMenu_ItemClicked));

Upvotes: 2

Related Questions