我的选项卡/功能区在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 ***** 在主类实例化中,
公共类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
这是一个很好的例子 @keith谢谢
页:
[1]