0
点赞
收藏
分享

微信扫一扫

C# 加载并显示菜单

悄然丝语 2022-07-27 阅读 49


                                                                            ​​软件架构师何志丹​​

1,支持cui和cuix。

2,菜单组重复加载或显示,C#下都会崩溃。所以要判断。

3,菜单加到最后。

 

public static AcadMenuGroup LoadMenu(AcadMenuGroups menuGroups, string filepath)
{
if( null == menuGroups )
{
return null;
}
if (!System.IO.File.Exists(filepath))
{
return null;
}

//如果已经加载则直接返回
string strMenuGroupName = System.IO.Path.GetFileNameWithoutExtension(filepath);
for (int i = 0; i < menuGroups.Count; i++)
{
AcadMenuGroup menuGroup = menuGroups.Item(i);
if (menuGroup.Name.Equals(strMenuGroupName, StringComparison.OrdinalIgnoreCase))
{
return menuGroup;
}
}

return menuGroups.Load(filepath);
}

protected void LoadMenu(AcadApplication acadapp,string filepath)
{
AcadMenuGroup menuGroup = LoadMenu(acadapp.MenuGroups,filepath);
if (null == menuGroup)
{
return;
}

//菜单栏 各popMenu的标题
List<string> names = new List<string>();
for (int i = 0; i < acadapp.MenuBar.Count; i++)
{
names.Add(acadapp.MenuBar.Item(i).Name);
}

for (int i = 0; i < menuGroup.Menus.Count; i++)
{//依次加到最后
AcadPopupMenu popMenu = menuGroup.Menus.Item(i);
if (-1 != names.IndexOf(popMenu.Name))
{//已经加载
continue;
}
popMenu.InsertInMenuBar(i + acadapp.MenuBar.Count);
}

}

 

举报

相关推荐

0 条评论