I want to Change the dropdown menuItems from the menustrip's 1st item
(Action) to be the same as the contextmenustri p that would pop-up for the
node selected in a Treeview control. Here is the complete method. Thank you
very much.
private void ppTree_NodeMous eClick(object sender,
TreeNodeMouseCl ickEventArgs e)
{
int index = 0;
string nodeTxt = e.Node.Text;
ToolStripMenuIt em actionMenu =
(ToolStripMenuI tem)mainMenu.It ems[0];
actionMenu.Drop DownItems.Clear ();
if (nodeTxt != null)
{
switch (nodeTxt)
{
case "Unity Administration" :
ToolStripItemCo llection menuItems =
rootMenuStrip.I tems;
actionMenu.Drop DownItems.
while (menuItems.Coun t >= 0)
{
actionMenu.Drop DownItems.Add(m enuItems[index]);
index++;
}
if (e.Button.ToStr ing() == "Right")
rootMenuStrip.S how(ppTree, e.Location);
break;
case "Contexts":
ToolStripItemCo llection contextsMenuIte ms =
contextsMenuStr ip.Items;
//actionMenu.Drop DownItems.AddRa nge(contextsMen uItems);
while (contextsMenuIt ems.Count 0)
{
actionMenu.Drop DownItems.Add(c ontextsMenuItem s[index]);
index++;
}
if (e.Button.ToStr ing() == "Right")
contextsMenuStr ip.Show(ppTree, e.Location);
break;
case "Computers" :
ToolStripItemCo llection computersMenuIt ems =
contextsMenuStr ip.Items;
actionMenu.Drop DownItems.AddRa nge(computersMe nuItems);
if (e.Button.ToStr ing() == "Right")
RefreshHelpMenu Strip.Show(ppTr ee, e.Location);
break;
case "Groups":
ToolStripItemCo llection groupsMenuItems =
contextsMenuStr ip.Items;
actionMenu.Drop DownItems.AddRa nge(groupsMenuI tems);
if (e.Button.ToStr ing() == "Right")
RefreshHelpMenu Strip.Show(ppTr ee, e.Location);
break;
case "Users":
ToolStripItemCo llection usersMenuItems =
contextsMenuStr ip.Items;
actionMenu.Drop DownItems.AddRa nge(usersMenuIt ems);
if (e.Button.ToStr ing() == "Right")
RefreshHelpMenu Strip.Show(ppTr ee, e.Location);
break;
case "Reports":
ToolStripItemCo llection reportsMenuItem s =
contextsMenuStr ip.Items;
actionMenu.Drop DownItems.AddRa nge(reportsMenu Items);
if (e.Button.ToStr ing() == "Right")
reportsMenuStri p.Show(ppTree, e.Location);
break;
default://Maybe it's a context node
if (ppTree.Selecte dNode.Parent != null)
{
if (ppTree.Selecte dNode.Parent.Na me == "Contexts")
contextMenuStri p.Show(ppTree, e.Location);
}
//test.MyTestMeth od("COM INTEROP TEST");
break;
}//end switch
}
}
--
Thanks.
"Jon Skeet [C# MVP]" wrote:
Pucca <Pu***@discussi ons.microsoft.c omwrote:
Hi: Below is the error I got from the 2 lines of code below. I don't
understand why and how to correct it. The actionMenu.Drop DownItems has 0
item in its collection at the time of the code. Thanks.
An unhandled exception of type 'System.Argumen tOutOfRangeExce ption' occurred
in mscorlib.dll
Additional information: Index was out of range. Must be non-negative and
less than the size of the collection.
ToolStripItemCo llection contextsMenuIte ms =
contextsMenuStr ip.Items;
.AddRange(conte xtsMenuItems);
..AddRange(cont extsMenuItems) isn't a valid statement, to start with.
Could you post a short but complete program which demonstrates the
problem?
See http://www.pobox.com/~skeet/csharp/complete.html for details of
what I mean by that.
--
Jon Skeet - <sk***@pobox.co m>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too