daboho 发表于 2021-8-28 13:46:44

我的选项卡/功能区在Autocad中不永久显示

这个代码也运行,但在关闭autocad时出现问题,我的选项卡不是autocad中的永久选项卡必须每个打开的autocad运行TAB,面板和按钮
如何在Autocad中编辑永久选项卡,而无需每次打开运行此代码以使TAB
感谢关注
      
      public void Testme()
      {
            RibbonControl ribbon = ComponentManager.Ribbon;
            if (ribbon != null)
            {
                RibbonTab rtab = ribbon.FindTab("TEST ME");
                if (rtab != null)
                {
                  ribbon.Tabs.Remove(rtab);      
                }
                rtab = new RibbonTab();
                rtab.Title = "TESTME";
                rtab.Id = "Testing";
                //Add the Tab
                ribbon.Tabs.Add(rtab);
                addContent(rtab);
            }
      }
      static void addContent(RibbonTab rtab)
      {
            rtab.Panels.Add(AddOnePanel());
      }
      static RibbonPanel AddOnePanel()
      {
            Document dwg = Application.DocumentManager.MdiActiveDocument;
            RibbonButton rb;
            RibbonPanelSource rps = new RibbonPanelSource();
            rps.Title = "Test One";
            RibbonPanel rp = new RibbonPanel();
            rp.Source = rps;
            //Create a Command Item that the Dialog Launcher can use,
            // for this test it is just a place holder.
            RibbonButton rci = new RibbonButton();
            rci.Name = "TestCommand";
            //assign the Command Item to the DialgLauncher which auto-enables
            // the little button at the lower right of a Panel
            rps.DialogLauncher = rci;
            rb = new RibbonButton();
            rb.Name = "Test Button";
            rb.ShowText = true;
            rb.ShowImage = true;
            rb.Width = 250;
            rb.Text = "Test Button";
            rb.CommandHandler = new MyRibbonCommandHandler();
            rb.CommandParameter = "CF";
          //dwg.SendStringToExecute((string)rb.CommandParameter + " ", true, false, true);
            //Add the Button to the Tab
            rps.Items.Add(rb);
            return rp;
      }
   
    }
    internal class MyRibbonCommandHandler : System.Windows.Input.ICommand
    {
      public event EventHandler CanExecuteChanged;
      public bool CanExecute(object parameter)
      {
            return true;
      }
      public void Execute(object parameter)
      {
            RibbonCommandItem btn = parameter as RibbonCommandItem;
            if (btn != null)
            {
                //execute an AutoCAD command, or your custom command defined by
                Document dwg = acApp.DocumentManager.MdiActiveDocument;
                dwg.SendStringToExecute((string)btn.CommandParameter + " ", true, false, true);
            }
      }
    }




**** Hidden Message *****

Keith™ 发表于 2021-8-29 22:49:40

在主类实例化中,
公共类MyAppClass{
ribbonClass myribbon=新ribbonClass()//根据需要实例化ribbon类。
}
</div将应用程序加载到AutoCAD(netload)时,让该应用程序为您加载功能区
现在,如果要加载应用程序并在加载时使其运行,请更改该行为,以便在AutoCAD中注册根据需要执行程序的命令,但在加载时具有主类,并实例化功能区,以便在打开AutoCAD时始终可用
您可以通过在注册表中添加设置来自动加载应用程序:
打开注册表并浏览到相关的HKLM注册表项…
HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R19.1\ACAD-D000:407\Applications\(这在您的安装中可能不同)
添加以下键和值:
LOADER(字符串)“path_to_your_dll”
说明(字符串)“应用程序说明”
LOADCTRLS(dword)0000000 E
托管(dword)0000000 1
执行此操作后,需要重新启动AutoCAD
在设置生效之前,您可能需要至少对DLL进行一次网络加载,或者它们可能会立即生效
还有其他方法可以做到这一点。有关自动加载.net程序集的详细信息,请参见:
https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/How-to-autoload-DLLs-with-AutoCAD.html
这是一个很好的例子

daboho 发表于 2021-10-13 17:44:32

@keith谢谢
页: [1]
查看完整版本: 我的选项卡/功能区在Autocad中不永久显示