在删除图层前,最好判断一个该图层上是否有CAD绘图对象,如果有的话就不要删除图层
C#代码:
private bool DeleteLayer(String sLayerName) { // 判断图上是否对象。 MxDrawResbuf param = (MxDrawResbuf)axMxDrawX1.Call("ExApp_isUselessLayer", sLayerName); if (param.AtLong(1) != 1) { // 图上还有对象,不能删除。 return false; } // 得到数据库对象. MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase(); // 得到层表. MxDrawLayerTable layerTable = database.GetLayerTable(); // 得到层。 MxDrawLayerTableRecord layer = layerTable.GetAt(sLayerName, false); if (layer == null) { // 没有该层 return false; } else { // 删除图层。 layer.Erase(); return true; } }