向面板添加按钮的函数
**** Hidden Message ***** 我不知道 VB.net 的复杂性,但是在以后向它分配现有控件时,您不需要创建新控件。Dim ribSourcePanel As RibbonPanelSource '= New RibbonPanelSource() 不应该在这里创建一个新的??。...。
ribSourcePanel = ribPanel.Source。
。
几件事:
1。您是否调试过BtnAdd()方法中出现异常代码?如果您这样做了,您将很容易找到异常的直接原因。
2。既然你说崩溃发生在BtnAdd()中,那么我可以猜测原因如下:你应该使用ribPanel = ribTab。FindPanel(PanelName)“”而不是ribPanel = ribCntrl,您出于未知原因将其注释掉。FindPanel(...)
因为RibbonControl。FindPanel()只查找活动RibbonTab上的面板!因此,在您的情况下,如果自定义功能区选项卡-“Design”不是活动的,代码将返回null,因此添加按钮的代码将引发异常。
3。如果我是你,我会在添加之前测试选项卡/面板/按钮是否存在,因为你的代码可能会处理WorkSpaceChanged事件,以确保当用户在同一个AutoCAD会话期间在工作空间之间切换时,你的自定义功能区选项卡保持不变。也就是说,我会让一些自定义功能区生成代码在AutoCAD启动时运行,并在工作空间发生变化时运行,这就是在创建功能区项目之前测试存在性的基本原理。
4。正如MickD正确指出的,在BtnAdd()方法中,除非您知道它们不存在,并且您需要创建它们,否则不要将它们声明为“New RibbonXXX”。也就是说,正如我所说,您尝试找出它们是否存在,并在必要时“新建”它们。
翻译错误代码(429):请求 QPS 超过限制。
页:
[1]