代码逻辑是这样的: 子窗体会接受主窗体传过来的menuStrip,然后遍历menu.Items,将菜单内容放入一个treeView中.
遇到问题是:当最大化子窗体的时候,menu.Items.Count突然多出4个Item, 如果不最大化窗体,则为主窗体实际Item数..
源码:
foreach (ToolStripMenuItem item in menu.Items)
{
if (item != menu.MdiWindowListItem)
{
treeView1.Nodes.Add(item.Name, item.Text);
treeView1.Nodes[item.Name].ToolTipText = "主菜单";
if (TraverseForm(item.Text.Trim()) == false)
{
for (int i = 0; i < item.DropDownItems.Count; i++)
{
treeView1.Nodes[item.Name].Nodes.Add(item.DropDownItems[i].Name, item.DropDownItems[i].Text);
treeView1.Nodes[item.Name].Checked = false;
}
}
}
解决方法:
item != menu.MdiWindowListItem && item.Text.Length > 0 && item.Text != "还原(&R)" && item.Text != "最小化(&N)" && item.Text != "关闭(&C)"
或者
item != menu.MdiWindowListItem && item.Name!=""