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;
}