欢迎加我的QQ群:193522571,一起来讨论、交流!

AutoCAD.Net/C#.Net QQ群:193522571 自定义控件中经常出现拖拽控件到界面中出错的问题,但是启动时又没有问题!

主要 原因是,我们不经意间在类级别定义了变量

Database db = HostApplicationServices.WorkingDatabase;

这个变量是在CAD启动时才有的,需要CAD环境支持

而这个就会导致设计器加载失败,也不会有合理的提示

自定义的控件和类,最好是这样设置成变量,然后再去单独实例化,否则自定义控件拖到到窗体中时会出错。
private CtlGasket ctlGasket;// = new CtlGasket();
private CtlFastener ctlFastener;// = new CtlFastener();
public bool IsForBody = false;
public DoubleEndStud DoubleEndStud;// { get; set; }
public FullScrewStud FullScrewStud;// { get; set; }
public Nut Nut;// { get; set; }
public Gasket Gasket;// = new Gasket();

另外,很重要一点是:
你不要试图在自定义控件中定义点Point3d
但是可以通过自定义类来返回,如:
public class ObjectIdPoint3d
{
public ObjectId Id;
public Point3d Pt;
}

posted @ 2020-06-14 16:37  swtool  阅读(207)  评论(0编辑  收藏  举报
欢迎加我的QQ群:193522571,一起来讨论、交流!