1、怎样用递归检查menustrip中有多少个ToolStripMenuItem?可能多多级菜单(Winform中)?
2、讲讲递归原理是怎样的?

解决方案 »

  1.   

    这个递归很简单 代码如下 经过测试的        private void button1_Click(object sender, EventArgs e)
            {
                foreach (ToolStripMenuItem item in menuStrip1.Items)
                {
                    richTextBox1.Text += item.Name+"\n";
                    if (item.DropDownItems.Count > 0)
                    {
                        GetMenu(item);
                    }
                }
            }        void GetMenu(ToolStripMenuItem item)
            {
                foreach (ToolStripMenuItem i in item.DropDownItems)
                {
                    richTextBox1.Text += i.Name + "\n";
                    if (i.DropDownItems.Count > 0)
                    {
                        GetMenu(i);
                    }
                }
            }
      

  2.   

    递归算法就是自己调用自己的  比如上例中的 在绑定多层的树 经常要用递归void GetMenu(ToolStripMenuItem item)
            {
                foreach (ToolStripMenuItem i in item.DropDownItems)
                {
                    richTextBox1.Text += i.Name + "\n";
                    if (i.DropDownItems.Count > 0)
                    {
                        GetMenu(i);   //调用自身   
                    }
                }
            }
      

  3.   

    谢谢,因为菜单中也有ToolStripSeparator,但是在上面的方法中执行提示无法将ToolStripMenuItem转化为ToolStripSeparator,怎样怎样修改下?