怎么让属性显示在文本框中
我创建了一个块,这里代码就不写了,然后我想用下面这个方法实现点击块,然后该块的属性名和属性值都出现在windows窗体的文本框中,可是块得属性我获取出来了,但不知道怎么让它显示在文本框中,在代码中应该怎么写啊,请指点public static void BrowseBlock()
{
Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
Database db = HostApplicationServices.WorkingDatabase;
TypedValue[] filterValues = { new TypedValue((int)DxfCode.Start, "INSERT")};
SelectionFilter filter = new SelectionFilter(filterValues);
PromptSelectionOptions opts = new PromptSelectionOptions();
opts.MessageForAdding = "请选择图形中的块对象";
PromptSelectionResult res = ed.GetSelection(opts, filter);
if (res.Status != PromptStatus.OK)
{
return;
}
SelectionSet ss = res.Value;
ObjectId[] ids = ss.GetObjectIds();
Transaction trans = db.TransactionManager.StartTransaction();
foreach (ObjectId blockid in ids)
{
BlockReference blockref = (BlockReference)trans.GetObject(blockid, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)trans.GetObject(blockref.BlockTableRecord, OpenMode.ForRead);
btr.Name //属性名
btr.Dispose();
AttributeCollection atts = blockref.AttributeCollection;
foreach (ObjectId attid in atts)
{
AttributeReference attref = (AttributeReference)trans.GetObject(attid, OpenMode.ForRead);
attref.TextString //属性值
}
}
}
把方法
public static void BrowseBlock()
改成带参数的方法
public static void BrowseBlock(TextBox txtName,TextBox txtValue)
其中txtName为属性名文本框,txtValue为属性值文本框
然后进行赋值:
txtName.Text=btr.Name //属性名
txtValue.Text=attref.TextString //属性值 lzx838 发表于 2011-7-16 15:53 static/image/common/back.gif
把方法
public static void BrowseBlock()
改成带参数的方法
我也遇到类似问题,用命令,无法向palette的textbox传递属性啊,如果上面改成带参数的,那么命令无法调用啊 本帖最后由 李辉 于 2011-9-23 20:18 编辑
下午我的问题,跟你一样的,搞定啦!!解决方法是这样的:通过命令的方式向文本框赋予text属性,这个文本框必须是public shared的属性,共享的变量,然后才能在通过命令外部调用
页:
[1]