你在仰望天空 发表于 2015-12-10 15:16:37

求助,如何实现从屏幕选中一个DBText,并且读取出单行文本的内容?

本帖最后由 你在仰望天空 于 2015-12-10 15:19 编辑

各位大大,如何实现从屏幕选中一个DBText,并且读取出单行文本的内容?

我试过以下方法没有输出内容。

请教如何才能得到单行文本的内容呢?

      public void Zgbz()
      {

            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            //获得文本内容
            string xffl1;

            using (Transaction trans = Application.DocumentManager.MdiActiveDocument.TransactionManager.StartTransaction())

            {

               PromptEntityOptions optEnt=new PromptEntityOptions("\n请选取文本");
               PromptEntityResult resEnt=ed.GetEntity(optEnt);

               if (resEnt.Status==PromptStatus.OK)
                   {
                     Entity ent = (Entity)trans.GetObject(resEnt.ObjectId, OpenMode.ForRead);
                     xffl1=ent.ToString ();
                  }
               
               ed.WriteMessage("\n读取的文本内容为:"+ xffl1);
            }

}







Real_King 发表于 2015-12-10 20:27:23

DBtext ent = (DBtext)trans.GetObject(resEnt.ObjectId, OpenMode.ForRead);
string X= ent.TextSring

你在仰望天空 发表于 2015-12-10 21:19:05

谢谢,这样可以了。之前不知道怎么回事一直没有成功。

你在仰望天空 发表于 2015-12-10 21:20:11

Real_King 发表于 2015-12-10 20:27 static/image/common/back.gif
DBtext ent = (DBtext)trans.GetObject(resEnt.ObjectId, OpenMode.ForRead);
string X= ent.TextSring

非常感谢,现在可以了。

guohq 发表于 2015-12-11 08:21:47

最好加一句对象类型判断:
if (Ent is DBText) {
}
保险点!

ivde 发表于 2015-12-12 08:39:47

本帖最后由 ivde 于 2015-12-12 08:41 编辑

public void ShowTextString ()
      {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
             //获得文本内容
             using (Transaction trans = Application.DocumentManager.MdiActiveDocument.TransactionManager.StartTransaction())
             {
               PromptEntityOptions optEnt=new PromptEntityOptions("\n请选取文本");
               optEnt.SetRejectMessage("\n***Only Text***");
               optEnt.AddAllowedClass(typeof(DBText),true);
               PromptEntityResult resEnt=ed.GetEntity(optEnt);
                  if (resEnt.Status==PromptStatus.OK)
                  {
                      DBText ent = (DBText)trans.GetObject(resEnt.ObjectId, OpenMode.ForRead);
                      var xffl1 = ent.TextString;
                      ed.WriteMessage("\n读取的文本内容为:"+ xffl1);
                  }
                  trans.Commit();
             }
      }

guohq 发表于 2015-12-12 16:45:03

这样也行,做好判断即可

rdhhb 发表于 2015-12-14 15:42:22

做好判断防止意外中止。楼上果然厉害

红黑墨水 发表于 2018-3-3 10:26:45

学习了 谢谢
页: [1]
查看完整版本: 求助,如何实现从屏幕选中一个DBText,并且读取出单行文本的内容?