如果去掉函数A(),则SendStringToExecute能正常执行,否则几乎没有响应,如何解决。
如果去掉函数A(),则SendStringToExecute能正常执行,否则几乎没有响应,如何解决。看函数:<p>private void looh()<br/> {<br/> InsertBlock("c:\\3.dwg", new Point3d(1000, 1000, 0));</p><p> Document acDoc = Application.DocumentManager.MdiActiveDocument;<br/> acDoc.SendStringToExecute("._zoom e ", true, false, false);<br/> <br/> A();<br/> }</p><p>如果去掉函数A(),则acDoc.SendStringToExecute("._zoom e ", true, false, false)能正常执行,<br/>如果执行函数A(),则acDoc.SendStringToExecute("._zoom e ", true, false, false)几乎没有反应,<br/>那位遇到过这个问题,是如何解决的。<br/></p> <p>还是那句话:SendStringToExecute不要用</p><p>要么平台调用Arx的acedCommand方法</p><p>要么用代码实现</p><p>代码实现的方法:</p><p>1、调用Com接口,AcadApplication有ZoomXXX方法</p><p>2、仔细看下手册,提供了Zoom命令的实现代码!</p> lzh741206发表于2009-8-28 12:41:00static/image/common/back.gif还是那句话:SendStringToExecute不要用要么平台调用Arx的acedCommand方法要么用代码实现代码实现的方法:1、调用Com接口,AcadApplication有ZoomXXX方法2、仔细看下手册,提供了Zoom命令的实现代<p></p> 下面的代码代码是反射调用Com的代码
当然,你也可以先引用AutoCad的类型库,
然后直接调用Application.AcadApplication.ZoomExtents()方法using System;
using System.Reflection;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
namespace TlsCad
{
class TlsTest
{
public static void ZoomExtents()
{
object app = Application.AcadApplication;
Type acApp = Type.GetTypeFromHandle(Type.GetTypeHandle(app));
acApp.InvokeMember(
"ZoomExtents",
BindingFlags.InvokeMethod,
null,
app,
new object);
}
}
} lzh741206发表于2009-8-28 16:39:00static/image/common/back.gif下面的代码代码是反射调用Com的代码当然,你也可以先引用AutoCad的类型库,然后直接调用Application.AcadApplication.ZoomExtents()方法using System;using System.Reflection;using Autodesk.
<p>太有才,谢谢!</p>
页:
[1]