如何取得MenuStrip下的所有ToolStripMenuItem对象,谢谢

解决方案 »

  1.   

    编辑MENUSTRIP的ITEM选择事件 swich 各个名 下面调用事件
      

  2.   

    如何取得MenuStrip下的所有ToolStripMenuItem对象,谢谢补充说明:既取得某个窗口上的所有ToolStripMenuItem对象,并将其text 属性用列表的形式展现出来.
      

  3.   

                foreach (ToolStripItem item in this.MainMenuStrip.Items) { 
                    
                }
      

  4.   

             foreach (ToolStripItem item in this.MainMenuStrip.Items) {  
                     
                }
    第一层菜单可以这样处理,但第二层就不可以了.
    第二层用如下的,但碰到ToolStripSeparator的对象就报错了.       foreach (ToolStripItem item in this.MainMenuStrip.DropDownItems) {  
                     
                }怎么办???????????????????????
      

  5.   

                foreach (ToolStripMenuItem item in this.MainMenuStrip.Items) 
                { 
                    for (int i = 0; i  < item.DropDownItems.Count; i++) { 
                        object obj = item.DropDownItems[i]; 
                        if (obj.GetType() != typeof(ToolStripSeparator)) { 
                            continue; 
                        } 
                    } 
                         
                }  
      

  6.   


    错误 1091 无法将类型“System.Windows.Forms.ToolStripItem”隐式转换为“System.Windows.Forms.ToolStripMenuItem”。存在一个显式转换(是否缺少强制转换?) D:\rfsa\syspro\CS\SYS\ClsSysPubprv.cs 292 39 syspro代码如下:
           ToolStripMenuItem lTSI_MenuP;
                ToolStripMenuItem ltsddm_MenuItem;
                ToolStripMenuItem ltsddm_MenuSub;
                ToolStripMenuItem ltsddm_Menu;
                string ls_tag;
                string ls_sql;
                int li_int;            ltsddm_MenuItem = null;            SqlCommand lcmd = new SqlCommand();            foreach (ToolStripMenuItem tempLoopVar_lTSI_MenuP in as_menu.Items)
                {
                    try
                    {
                        lTSI_MenuP = tempLoopVar_lTSI_MenuP;
                    }
                    catch
                    {
                        continue;
                    }
                    for (int i = 0; i < lTSI_MenuP.DropDownItems.Count; i++)
                    {
                        object obj = lTSI_MenuP.DropDownItems[i];  
                        if (obj.GetType() == typeof(ToolStripSeparator))
                        {
                            continue;
                        }
                        try
                        {
                            ltsddm_Menu = lTSI_MenuP.DropDownItems[i];
                        }
                        catch
                        {
                            continue;
                        }
                        try
                        {
                            ls_tag = ltsddm_Menu.Tag.ToString();
                        }
                        catch
                        {
                            ls_tag = "";
                        }                    li_int = 0;
          
                        ltsddm_MenuItem = ltsddm_Menu;
                    }
                    
    return null;
    }
      

  7.   

    这样就可以了 
    ltsddm_Menu = (ToolStripMenuItem)lTSI_MenuP.DropDownItems[i];
      

  8.   


    private ToolStripMenuItem FindMenuItem(MenuStrip Menu, string MenuItemName)
            {
                ToolStripMenuItem menuItem, result;
                result = null;
                int count = Menu.Items.Count;            for (int i = 0; i < count; i++)
                {
                    menuItem = (ToolStripMenuItem)Menu.Items[i];
                    if (Menu.Items[i].Name == MenuItemName)
                    {
                        result = menuItem;
                        break;
                    }
                    else
                    {
                        result = FindSubMenuItem(menuItem, MenuItemName);
                        if (result != null)
                            break;
                    }
                }            return result;
            }        private ToolStripMenuItem FindSubMenuItem(ToolStripMenuItem MenuItem, string MenuItemName)
            {
                int count;
                ToolStripMenuItem menuItem, result;
                result = null;            if (MenuItem.HasDropDownItems)
                {
                    count = MenuItem.DropDownItems.Count;                for (int i = 0; i < count; i++)
                    {
                        if (MenuItem.DropDownItems[i].GetType().Equals(MenuItem.GetType()))
                        {
                            menuItem = (ToolStripMenuItem)MenuItem.DropDownItems[i];
                            if (menuItem.Name == MenuItemName)
                            {
                                result = menuItem;
                                break;
                            }
                            else
                            {
                                result = FindSubMenuItem(menuItem, MenuItemName);
                                if (result != null)
                                    break;
                            }
                        }                }
                }            return result;
            }
      

  9.   

    private ToolStripMenuItem FindMenuItem(MenuStrip Menu, string MenuItemName)
            {
                ToolStripMenuItem menuItem, result;
                result = null;
                int count = Menu.Items.Count;            for (int i = 0; i < count; i++)
                {
                    menuItem = (ToolStripMenuItem)Menu.Items[i];
                    if (Menu.Items[i].Name == MenuItemName)
                    {
                        result = menuItem;
                        break;
                    }
                    else
                    {
                        result = FindSubMenuItem(menuItem, MenuItemName);
                        if (result != null)
                            break;
                    }
                }            return result;
            }        private ToolStripMenuItem FindSubMenuItem(ToolStripMenuItem MenuItem, string MenuItemName)
            {
                int count;
                ToolStripMenuItem menuItem, result;
                result = null;            if (MenuItem.HasDropDownItems)
                {
                    count = MenuItem.DropDownItems.Count;                for (int i = 0; i < count; i++)
                    {
                        if (MenuItem.DropDownItems[i].GetType().Equals(MenuItem.GetType()))
                        {
                            menuItem = (ToolStripMenuItem)MenuItem.DropDownItems[i];
                            if (menuItem.Name == MenuItemName)
                            {
                                result = menuItem;
                                break;
                            }
                            else
                            {
                                result = FindSubMenuItem(menuItem, MenuItemName);
                                if (result != null)
                                    break;
                            }
                        }                }
                }            return result;
            }
      

  10.   

    menuStrip1.Items
    获取menustrip的所有项,返回是一个ToolStripItemCollection集合
      

  11.   

    递归历遍所有菜单项(C#.net)
    ………
    ArrayList SubItem = new ArrayList();
    int level;
    private void FindAllSubMenuItem(ref ArrayList arr,ToolStripMenuItem mi,int level )
    {
       if (level == 0)
         {
           for (int i = 0; i < this.MainMenuStrip.Items.Count; i++)
               {
                 if (this.MainMenuStrip.Items[i].GetType().Name!=” ToolStripSeparator”)
    {
    ToolStripMenuItem item = (ToolStripMenuItem)this.MainMenuStrip.Items[i];
                     arr.Add(item);
        FindAllSubMenuItem(ref arr, item, level + 1);
    }            
              }
         }
         else
         {
            if (mi != null && mi.DropDownItems.Count > 0)
               {
                 for (int i = 0; i < mi.DropDownItems.Count; i++)
                  {
                      if (this.MainMenuStrip.Items[i].GetType().Name!=” ToolStripSeparator”)
                       {
    ToolStripMenuItem item = (ToolStripMenuItem)mi.DropDownItems[i];
                         arr.Add(item);
                         FindAllSubMenuItem(ref arr, item, level + 1);
    }
                  }
               }
         }
    }
    所有的菜单项保存在动态数组SubItem中