如何让 VB.NET 应用程序等待文档加载完毕?
How do I tell a VB.NET app to wait until the document is loaded?
我很好奇如何让我的应用程序等待我的文档加载完毕。目前,我有一个在 button.click 事件上激活的代码。一段代码为:
System.Diagnostics.Process.Start(oInitialPath & ".idw")
oDrawingDoc = _invApp.Documents.ItemByName(oInitialPath & ".idw")
oDrawingDoc.SaveAs(StripFilename(MyFile) & oNewName & ".idw", False)
我不确定 .process.start 是否是打开 Autodesk Inventor 文档的最佳方式,但不管它是否有效。问题是下一行,我将文档分配给变量,在文档打开之前被调用。所以我得到一个异常错误,因为文档还不存在。我可以输入什么,使应用程序等到文档完全打开后再将其分配给变量?不使用消息框或 threading.sleep.
您已经确定问题的原因:您使用两种不同的方式与第三方应用程序通信:
- Process.Start 打开一个文件并且
- 用于操作和保存文件的应用程序的 COM 自动化接口。
解决方案很简单:也使用应用程序的 COM 自动化接口 (_invApp
) 打开 文件。可以在第三方应用程序的文档中找到如何执行此操作。
我很好奇如何让我的应用程序等待我的文档加载完毕。目前,我有一个在 button.click 事件上激活的代码。一段代码为:
System.Diagnostics.Process.Start(oInitialPath & ".idw")
oDrawingDoc = _invApp.Documents.ItemByName(oInitialPath & ".idw")
oDrawingDoc.SaveAs(StripFilename(MyFile) & oNewName & ".idw", False)
我不确定 .process.start 是否是打开 Autodesk Inventor 文档的最佳方式,但不管它是否有效。问题是下一行,我将文档分配给变量,在文档打开之前被调用。所以我得到一个异常错误,因为文档还不存在。我可以输入什么,使应用程序等到文档完全打开后再将其分配给变量?不使用消息框或 threading.sleep.
您已经确定问题的原因:您使用两种不同的方式与第三方应用程序通信:
- Process.Start 打开一个文件并且
- 用于操作和保存文件的应用程序的 COM 自动化接口。
解决方案很简单:也使用应用程序的 COM 自动化接口 (_invApp
) 打开 文件。可以在第三方应用程序的文档中找到如何执行此操作。