【问题标题】:How to show a waiting dialog, in the meantime, still keep dealing with PowerPoint objects?如何显示一个等待对话框,同时仍然继续处理 PowerPoint 对象?
【发布时间】:2015-02-02 04:10:37
【问题描述】:
我想显示一个等待对话框,同时所有与 PowerPoint 对象有关的计算仍在后台运行。我的目的是在处理 PowerPoint 对象期间,我尽量防止用户干扰 UI。
似乎没有办法在后台处理 PowerPoint 对象。我的情况有什么解决方法吗?
谢谢
注意:我使用的是 VS Ultimate 2013、C#、PowerPoint 2013、vsto
【问题讨论】:
标签:
vba
vsto
powerpoint
office-interop
office-addins
【解决方案1】:
Office 应用程序使用单线程单元模型。这就是为什么您需要使用主线程来处理 Office/PowerPoint 对象。但是,您可以将所需信息提取到 .Net 集合中并在另一个线程上处理数据。
但如果您需要使用 PowerPoint 对象,一个可能的解决方案是显示一个带有进度条的非对话框表单,该进度条显示您的操作状态。因此,最终用户将无法访问 PowerPoint 的 UI。不要忘记为 Show 方法指定父窗口句柄(PowerPoint 窗口句柄)(参见IWin32Window 接口)。