DocumentManager.Open之后Editor.WriteMessage 出现 eNotApplicable错误
本帖最后由 mummypie 于 2011-6-30 17:25 编辑public static void cmd()
{
Document doc = Application.DocumentManager.Open("d:\\勘测.dwg",false); Editor ed = doc.Editor;
Database db = doc.Database;
ed.WriteMessage("获取地形图数据\n");
}
似乎是文档还没被完全打开,Document还没有被初始化,造成调用命令失败
有人知道处理办法吗,我需要打开后自动的处理图形中相关数据
有没有通知文档已经打开完毕的事件?
你的doc不是当前文档,这时使用其ed应该不行吧? 楼上说的有道理,你试试将doc设置为当前活动文档试试 本帖最后由 mummypie 于 2011-7-1 11:12 编辑
Document doc= Application.DocumentManager.Open("d:\\勘测.dwg", true);
Application.DocumentManager.MdiActiveDocument = doc ;
第二句执行不了,就像被阻断了。。vc#里面用“全部中断”发现就停在第二句上面,在cad里面改变活动文档或者关掉时就可以往下执行,但就要报错了
eNotApplicable
或者eNoDocument
open后就是当前文档了,所以不需要再设置。
试试用lockdocument(是lockdocument还是documentlock忘记了,!-_-)锁定文档
然后Editor ed=doc.Editor; 这两天我也遇到了类似的问题,
Document doc= Application.DocumentManager.Open("d:\\勘测.dwg", true);
Application.DocumentManager.MdiActiveDocument = doc ;
第二句会报错,删去之后确定没错? 这个问题,我也遇到了。仍未解决! 有人试过下面的代码吗?
DocumentCollection acDocMgr = Application.DocumentManager;
Document acDoc = acDocMgr.Add(strTemplatePath);
acDocMgr.MdiActiveDocument = acDoc;
貌似 过去超级版主 给的代码的可以解决
加上CommandFlags.Session标记
页:
[1]
2