代码逻辑是这样的: 子窗体会接受主窗体传过来的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!=""

posted on 2012-02-03 16:32  勿忘我  阅读(708)  评论(0编辑  收藏  举报