CAD.net 创建面板

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhengxiaotaozz/article/details/77101283

1、使用注册表进行插件dll的自动加载时Autodesk.Windows.ComponentManager.Ribbon == null需要延迟一下再调用面板的创建代码

2、注册事件

Autodesk.Windows.ComponentManager.ItemInitialized
 public void AddRibbon()
        {
            if (Autodesk.Windows.ComponentManager.Ribbon == null)
            {
                Autodesk.Windows.ComponentManager.ItemInitialized += new EventHandler<RibbonItemEventArgs>(ComponentManager_ItemInitialized);
            }
        }
3、在事件中进行创建面板

 private void ComponentManager_ItemInitialized(object sender, RibbonItemEventArgs e)
        {
            if (Autodesk.Windows.ComponentManager.Ribbon != null)
            {
                //在CAD初始化完成后创建面板
                RibbonControl rc = Autodesk.Windows.ComponentManager.Ribbon;
                RibbonTab rt = RibbonTab("tabName", "1");
                RibbonPanel rp = RibbonPanel("name");
                RibbonButton rb = RibbonButton("", "");
                rp.Source.Items.Add(rb);
                rt.Panels.Add(rp);
                rc.Tabs.Add(rt);
                rt.IsActive = false;
                Autodesk.Windows.ComponentManager.ItemInitialized -= new EventHandler<RibbonItemEventArgs>(ComponentManager_ItemInitialized);
            }
        }


猜你喜欢

转载自blog.csdn.net/zhengxiaotaozz/article/details/77101283