PowerPoint加载项 - 从文档形状调用加载项功能

时间:2012-05-15 15:44:55

标签: c# com ms-office powerpoint office-interop

简短版本:在PowerPoint幻灯片中嵌入控件以将事件发送回应用程序级加载项的首选方法是什么?控件需要在幻灯片放映模式和设计模式下工作。

长版:

我最近开始使用PowerPoint的遗留加载项(简而言之)从远程数据源中提取数据并在幻灯片上绘制相应的图表。加载项是托管代码(C#),但不是使用VSTO构建的 - 它使用自定义包装器和COM垫片。

定期需要刷新图表,为此,我们的加载项在工具栏中有一个“刷新”按钮。如果图表在刷新之前根本无法呈现,我们还会在幻灯片本身上嵌入一个MSForms.CommandButton(作为OLE对象)。我们已经在类似的Excel加载项中成功使用了这种方法。

不幸的是,它在PowerPoint中不起作用:按钮上的点击事件似乎无法到达我们的加载项。我在网上找到了一些支持这种观察的信息。我也用MSForms.ComboBox而不是按钮测试了它,并且工作 - 组合框的更改事件到达我们的加载项并且刷新成功。

所以我似乎需要找到另一种让按钮与我们的加载项通信的方法。我可以想到一些方法,我想知道是否有最佳实践:

  1. 让按钮(或类似形状)运行一个调用我们的加载项中的代码的宏。我听说在设计模式下查看幻灯片时可能无法正常工作,但尚未测试确认。
  2. 在幻灯片中嵌入MSForms表单,以捕获click事件并将其传递给我们的加载项。同样,这只是一个理论,尚未经过测试。
  3. 完全使用其他东西 - 有些东西告诉我必须有一种“现代”方式来做这件事,我对Office开发知之甚少并不熟悉。
  4. 我将补充说,迁移到VSTO或类似的技术(如NetOffice)是一种选择,但我们希望尽可能避免这种情况。谢谢!

0 个答案:

没有答案