乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 58|回复: 3

怎么让属性显示在文本框中

[复制链接]

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2011-7-5 12:21:00 | 显示全部楼层 |阅读模式
我创建了一个块,这里代码就不写了,然后我想用下面这个方法实现点击块,然后该块的属性名和属性值都出现在windows窗体的文本框中,可是块得属性我获取出来了,但不知道怎么让它显示在文本框中,在代码中应该怎么写啊,请指点
  [CommandMethod("sel")]
        public static void BrowseBlock()
        {
            Editor ed = Autodesk..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       //属性值
               }
               
           }
        }
回复

使用道具 举报

20

主题

73

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
153
发表于 2011-7-16 15:53:00 | 显示全部楼层
把方法
public static void BrowseBlock()
改成带参数的方法
public static void BrowseBlock(TextBox txtName,TextBox txtValue)
其中txtName为属性名文本框,txtValue为属性值文本框
然后进行赋值:
txtName.Text=btr.Name   //属性名
txtValue.Text=attref.TextString       //属性值
回复

使用道具 举报

5

主题

14

帖子

2

银币

初来乍到

Rank: 1

铜币
37
发表于 2011-9-23 15:42:00 | 显示全部楼层

我也遇到类似问题,用命令,无法向palette的textbox传递属性啊,如果上面改成带参数的,那么命令无法调用啊
回复

使用道具 举报

5

主题

14

帖子

2

银币

初来乍到

Rank: 1

铜币
37
发表于 2011-9-23 20:15:00 | 显示全部楼层

下午我的问题,跟你一样的,搞定啦!!解决方法是这样的:通过命令的方式向文本框赋予text属性,这个文本框必须是public shared的属性,共享的变量,然后才能在通过命令外部调用
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 17:22 , Processed in 1.855476 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表