求助,如何实现从屏幕选中一个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);
}
}
DBtext ent = (DBtext)trans.GetObject(resEnt.ObjectId, OpenMode.ForRead);
string X= ent.TextSring 谢谢,这样可以了。之前不知道怎么回事一直没有成功。 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
非常感谢,现在可以了。 最好加一句对象类型判断:
if (Ent is DBText) {
}
保险点! 本帖最后由 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();
}
} 这样也行,做好判断即可 做好判断防止意外中止。楼上果然厉害 学习了 谢谢
页:
[1]