下面是一个常规创建PaletteSet面板的代码:

        public static PaletteSet m_ps = null;
[CommandMethod("MyPalette")]
public void MyPalette()
{
if (m_ps == null)
{
m_ps = new PaletteSet("这是我的面板", typeof(CreatePalette).GUID);
//创建一个面板
Button bt = new Button();
bt.Size = new System.Drawing.Size(, );
bt.Text = "点我";
//创建一个容器
Panel panel = new Panel();
panel.Controls.Add(bt);
//将容器添加入面板
m_ps.Add("按钮", panel);
}
m_ps.Visible = true;
m_ps.Size = new System.Drawing.Size(, );
m_ps.Dock = DockSides.Left;
}

大部分的书本和网上教程基本都是这样,加载后,输入命令也没有任何问题。

问题出现在,关闭CAD,下次打开后命令行会出现以下问题:

当然,这并没有多大影响,因为它在第三次打开CAD后就不再出现这个问题了(前提是第二次的时候不再执行该命令)。

之前遇到很多次该问题,解决的办法是:

m_ps = new PaletteSet("", typeof(CreatePalette).GUID);

但这带来的问题就是,面板左上角的标题名称是空的。

今天浏览一个国外网站的时候,有人提到该问题,并给出正确的解决方案:


m_ps = new PaletteSet("", typeof(CreatePalette).GUID);
m_ps.Name = "这是我的面板";

这样既保证了面板标题正确显示,也不会在下次启动CAD的时候出现以上问题。

new PaletteSet(string name, GUID toolID);

该处name并不是指的是标题名,与PaletteSet.Name属性不一样,name指的是打开面板的命令。

当程序设置为随CAD启动时,m_ps = new PaletteSet("MyPalette", typeof(CreatePalette).GUID);

会自动执行"MyPalette"命令。

创建PaletteSet的一个问题的更多相关文章

  1. 如何通过命令行创建和设置一个MySQL用户

    我想要在MySQL服务器上创建一个新的用户帐号,并且赋予他适当的权限和资源限制.如何通过命令行的方式来创建并且设置一个MySQL用户呢? 要访问一个MySQL服务器,你需要使用一个用户帐号登录其中方可 ...

  2. 创建你的一个composer包

    如何创建自己的一个composer包,这个其实很好解决的!只要你了解composer相关的知识便不难做到. 首先,你还不知道什么是composer的话,请先学习下composer的相关知识.简单的说, ...

  3. objectARX创建 PaletteSet 停靠面板示例

    objectARX创建 PaletteSet 停靠面板示例 图文By edata ,转载注明出处 http://www.cnblogs.com/edata 部分代码参考张帆<AutoCAD Ob ...

  4. 字节码编程,Byte-buddy篇一《基于Byte Buddy语法创建的第一个HelloWorld》

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 相对于小傅哥之前编写的字节码编程: ASM.Javassist 系列,Byte Bu ...

  5. jQuery的DOM操作实例(3)——创建节点&&编写一个弹窗

    一.原生JavaScript编写弹窗 二.jQuery编写弹窗 知识点归纳总结: 在原生JavaScript中,创建一个节点: var oDiv=document.createElement(&quo ...

  6. weblogic管理2 - 创建并启动一个managed server

    创建一个managed server. 1.  进入网页console管理页面,如:http://10.100.25.14:7001/console     , 先点击->服务器 (红色标记框) ...

  7. weblogic管理1——创建 和 删除一个domain

    说明本文环境  WLS_HOME=/home/weblogic/Oracle/Middleware创建一个domian   第一种方法通过console 创建>[weblogic@11g Mid ...

  8. C#创建、安装一个Windows服务

    关于WIndows服务的介绍,之前写过一篇: http://blog.csdn.net/yysyangyangyangshan/article/details/7295739.可能这里对如何写一个服务 ...

  9. range() 函数创建并返回一个包含指定范围的元素的数组

    语法 range(first,second,step) 参数 描述 first 必需.规定数组元素的最小值. second 必需.规定数组元素的最大值. step 可选.规定元素之间的步进制.默认是 ...

随机推荐

  1. 12 寸 Retina MacBook 的大秘密: 可用移动电源充电

    苹果新款12寸Retina MacBook虽然只有一个USB-C接口,但这个接口的能力却十分强大.它不仅可以进行数据传输和视频输出,还能接收和输入电源.这也就是说,你可以使用移动电源对其进行充电,如果 ...

  2. 演练:创建和使用静态库 (C++)

    我们将创建的下一个库类型是静态库 (LIB). 使用静态库是重用代码的一种绝佳方式. 您不必在自己创建的每个程序中重新实现同一例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可. ...

  3. VS2013编译Qt5.6.0静态库,并提供了百度云下载(乌合之众)good

    获取qt5.6.0源码包 直接去www.qt.io下载就好了,这里就不详细说了. 这里是我已经编译好的** 链接:http://pan.baidu.com/s/1pLb6wVT 密码: ak7y ** ...

  4. Microsoft Development Platform Technologies

  5. Adobe cs6 全系列软件绿色破解版-一键安装

    下载地址: 链接:https://pan.baidu.com/s/1THssmSS-SnyNc2DW7Wr8cA 提取码:y3tq 软件介绍 作为全球领先的多媒体设计软件供应商,Adobe Syste ...

  6. 共识协议——RAFT&PBFT

    区块链是一个没有中央权威的分布式对等系统.虽然权力下放可以防止各方的腐败行为,但是它必需要有一个可靠的共识协议来作出决策,让分散在世界各地的节点可以形成一致的意见.常见的共识算法有比特币采用的POW, ...

  7. 机器学习经典算法之K-Means

    一.简介 K-Means 是一种非监督学习,解决的是聚类问题.K 代表的是 K 类,Means 代表的是中心,你可以理解这个算法的本质是确定 K 类的中心点,当你找到了这些中心点,也就完成了聚类. / ...

  8. Kali-利用metasploit中的exploit/multi/handler进行攻击

    在攻击服务器上生成连接软件,LHOST为攻击机IP地址 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.52.133 LPORT=4 ...

  9. 【设计模式】行为型08状态模式(status Pattern)

    状态模式(status Pattern)       定义:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类.其别名为状态对象(Objects for States).与命令模式 ...

  10. WebGL概述

    WebGL,是一项用来在网页上绘制和渲染复杂三维图形(3D图形),并允许用户与之交互的技术.WebGL基于OpenGL ES 2.0,使用GLSL ES语言编写着色器.而 OpenGL ES (Ope ...