【发布时间】:2014-04-04 20:40:19
【问题描述】:
我正在创建一个 Windows 窗体,用户将在其中运行 Autocad 中的命令,它会提示他们选择一个对象(特别是 3d 多段线)。 3d 多段线可以有非常广泛的顶点。我希望每个顶点都打开/创建它自己的行。每行有 5 列(每个顶点的属性)。
为此使用什么合适的容器?我希望用户能够修改(例如更改高度)每个顶点中的每个属性。除了实际删除他们想要的任何顶点。
表格布局面板?常规面板?这是我“获取”顶点的代码:
using (AcDb.Transaction oTr = db.TransactionManager.StartTransaction())
{
AcDb.ObjectIdCollection ids = new AcDb.ObjectIdCollection();
AcEd.PromptEntityOptions options = new AcEd.PromptEntityOptions("\nSelect a 3DPolyline:");
options.SetRejectMessage("That is not select a 3DPolyline" + "\n");
options.AddAllowedClass(typeof(AcDb.Polyline3d), true);
AcEd.PromptEntityResult result = ed.GetEntity(options);
if (result.Status != AcEd.PromptStatus.OK) return;
AcDb.Polyline3d oEnt = oTr.GetObject(result.ObjectId, AcDb.OpenMode.ForRead) as AcDb.Polyline3d;
foreach (AcDb.ObjectId oVtId in oEnt)
{
AcDb.PolylineVertex3d oVt = oTr.GetObject(oVtId, AcDb.OpenMode.ForRead) as AcDb.PolylineVertex3d;
//now to populate...something
【问题讨论】:
-
可能是一个数据网格?应该允许您查看顶点对象的集合并直接修改(包含之前/之后的编辑事件)......删除并不那么明显(选择行,按键盘上的删除),所以可能会扔进工具栏。跨度>