简短版本:在PowerPoint幻灯片中嵌入控件以将事件发送回应用程序级加载项的首选方法是什么?控件需要在幻灯片放映模式和设计模式下工作。
长版:
我最近开始使用PowerPoint的遗留加载项(简而言之)从远程数据源中提取数据并在幻灯片上绘制相应的图表。加载项是托管代码(C#),但不是使用VSTO构建的 - 它使用自定义包装器和COM垫片。
定期需要刷新图表,为此,我们的加载项在工具栏中有一个“刷新”按钮。如果图表在刷新之前根本无法呈现,我们还会在幻灯片本身上嵌入一个MSForms.CommandButton(作为OLE对象)。我们已经在类似的Excel加载项中成功使用了这种方法。
不幸的是,它在PowerPoint中不起作用:按钮上的点击事件似乎无法到达我们的加载项。我在网上找到了一些支持这种观察的信息。我也用MSForms.ComboBox而不是按钮测试了它,并且工作 - 组合框的更改事件到达我们的加载项并且刷新成功。
所以我似乎需要找到另一种让按钮与我们的加载项通信的方法。我可以想到一些方法,我想知道是否有最佳实践:
我将补充说,迁移到VSTO或类似的技术(如NetOffice)是一种选择,但我们希望尽可能避免这种情况。谢谢!