在VB中子菜单可以用相同的Name,然后通过索引来调用,但如何在C#中实现呢?
有其他好的办法能实现用索引调用菜单也行,十分感谢你的高见!!!!!!!

解决方案 »

  1.   

    象VB里面那样的数组控件怕什么语言也比不上VB的方便了...
    .Net里面可以把控件按钮做成数组,不过必须手工写代码
    例如:
    Button[] myButtons = new button[30];
    for(int i=0;i<myButtons.Length;i++)
    {
       myButtons[i] = new Button();
       //..............
       //代码从IDE自动生成里抄一些
       this.Controls.Add(myButtons[i]);
    }
      

  2.   

    看看下面菜单结构:
    //mainMenu1的子菜单
    this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
      this.menuItemF1_1,
      this.menuItemF1_2,
      this.menuItemF1_3,
      this.menuItemF1_4,
      this.menuItemF1_5}); // 
    // menuItemF1_1
    // 
    //menuItemF1_1 的子菜单
    this.menuItemF1_1.Index = 0;
    this.menuItemF1_1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     this.menuItemF1_1_1,
     this.menuItemF1_1_2});-----------------------------------------------------------------------------
    所以每个menuitem都有可能有子菜单,用递归的方式找出每个不为不是父菜单的menuitem。然后针对 不是父菜单的menuitem 项判断是否是你需要的菜单项。
    private void Fun(MenuItem m)
    {
    if(m.IsParent)
    {
    foreach(MenuItem mm in m.MenuItems)
    {
    Fun(mm);
    }
    }
    else
    {
                      //在这里实现要的操作
                      //比如:m.PerformClick(); 出发click事件。
    Console.WriteLine(m.Text);
    }
    }
    //---------------------
    foreach(MenuItem mam in this.mainMenu1.MenuItems)
    {
          Fun(mam);
    }
      

  3.   

    看看下面菜单结构:
    //mainMenu1的子菜单
    this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
      this.menuItemF1_1,
      this.menuItemF1_2,
      this.menuItemF1_3,
      this.menuItemF1_4,
      this.menuItemF1_5}); // 
    // menuItemF1_1
    // 
    //menuItemF1_1 的子菜单
    this.menuItemF1_1.Index = 0;
    this.menuItemF1_1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     this.menuItemF1_1_1,
     this.menuItemF1_1_2});-----------------------------------------------------------------------------
    所以每个menuitem都有可能有子菜单,用递归的方式找出每个不为不是父菜单的menuitem。然后针对 不是父菜单的menuitem 项判断是否是你需要的菜单项。
    private void Fun(MenuItem m)
    {
    if(m.IsParent)
    {
    foreach(MenuItem mm in m.MenuItems)
    {
    Fun(mm);
    }
    }
    else
    {
                      //在这里实现要的操作
                      //比如:m.PerformClick(); 出发click事件。
    Console.WriteLine(m.Text);
    }
    }
    //---------------------
    foreach(MenuItem mam in this.mainMenu1.MenuItems)
    {
          Fun(mam);
    }