欢迎加我的QQ群:193522571,一起来讨论、交流!

AutoCAD.Net/C#.Net QQ群:193522571 生成下拉菜单、工具条

   #region 添加子菜单
   int i = 0;
   foreach (string MenuParentName in MenuParentNameList)
   {
    i++;
    //当前子集数据
    var SonMenuData = SwtoolMenu.AsEnumerable()
     .Where(p => p.Field<string>("MenuParent") == MenuParentName && !p.Field<bool>("IsDeleted") && p.Field<bool>("IsActive"))
     .OrderBy(q => q.Field<int>("CommandIndex")).Distinct();
    if (i ==2 || i==3)
    {
     #region 第2和3个工具集全加入到第一级工具条中
     //下拉菜单中增加分隔符号
     MainMenu.AddSeparator(i);
     //工具条上增加分隔符号
     ToolbarButton tb = new ToolbarButton(MainToolBar);
     tb.DrawSeparator = true;
     //将比较重要的按钮加入到父级工具条中
     foreach (var SonMenuItem in SonMenuData)
     {
      string MenuID = "ID_" + MainMenuName + "_" + SonMenuItem["ID"].ToString();
      //增加到一级菜单
      MainMenu.AddMenuItem(int.Parse(SonMenuItem["ID"].ToString()), SonMenuItem["MenuName"].ToString(), MenuID);
      //增加到一级工具条
      MainToolBar.AddToolbarButton(-1, SonMenuItem["MenuName"].ToString(), MenuID);
     }
     #endregion 第2和3个工具集全加入到第一级工具条中
    }
    else
    {
     #region 其它按钮加入到各自的子工具条中
     //新建子菜单
     PopMenu SonMenu = MainMenu.AddSubMenu(i, MenuParentName, "ID_SON_" + i.ToString());
     //新建子按钮
     Toolbar SonToolBar = cs.MenuGroup.AddToolbar(MenuParentName);
     //新建子项菜单与按钮
     foreach (var SonMenuItem in SonMenuData)
     {
      string MenuID = "ID_" + MainMenuName + "_" + SonMenuItem["ID"].ToString();
      //增加到父菜单上
      SonMenu.AddMenuItem(int.Parse(SonMenuItem["ID"].ToString()), SonMenuItem["MenuName"].ToString(), MenuID);
      //增加到父按钮上
      SonToolBar.AddToolbarButton(-1, SonMenuItem["MenuName"].ToString(), MenuID);
     }
     //将按钮子集增加到主工具栏上
     MainToolBar.AttachToolbarToFlyout(-1, SonToolBar);
     #endregion 其它按钮加入到各自的子工具条中
    }
   }
   #endregion

posted @ 2019-08-15 09:54  swtool  阅读(736)  评论(0编辑  收藏  举报
欢迎加我的QQ群:193522571,一起来讨论、交流!