Reputation: 731
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
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