A different approach: I have deliberately used multiple checks for valid names; in production code, I'd use try/catch.
private void RemoveDDownMenuItem(MenuStrip mnuStrip, string menuItemName, string ddownMenuItemName)
{
if (! mnuStrip.Items.ContainsKey(menuItemName))
{
return;
}
ToolStripItem menu = mnuStrip.Items[menuItemName];
if(! (menu is ToolStripMenuItem))
{
return;
}
ToolStripMenuItem tsmenu = (ToolStripMenuItem) menu;
if (! tsmenu.HasDropDown)
{
return;
}
if (! tsmenu.DropDownItems.ContainsKey(ddownMenuItemName))
{
return;
}
tsmenu.DropDownItems.Remove(tsmenu.DropDownItems[ddownMenuItemName]);
}