【发布时间】:2016-02-18 18:55:53
【问题描述】:
我正在为 Microsoft PowerPoint 2010 开发自定义任务窗格。我需要在多个应用程序窗口/演示文稿之间同步任务窗格。任务窗格使用功能区上的切换按钮显示。
由于 PowerPoint 2010 在不同的文档窗口中显示每个演示文稿(与 2007 不同),我需要为每个窗口分别创建一个任务窗格并同步它们。我已经按照Microsoft tutorial 了解如何为多个应用程序窗口创建任务窗格,并且我正在使用CustomTaskPaneCollection.Add(UserControl, String, Object) 方法来指定任务窗格应与哪个应用程序窗口相关联。在这种情况下,Object 是与任务窗格关联的PowerPoint.DocumentWindow。
由于某种原因,我的所有任务窗格都是在活动窗口中创建的,而不是在我分配的窗口中创建的。例如,如果我打开 3 个 PowerPoint 演示文稿,然后切换任务窗格,则所有三个任务窗格都将添加到活动窗口中。
这是我在按下切换按钮时用来添加任务窗格的代码:
public void AddAllTaskPanes()
{
PowerPoint.DocumentWindows windows = Globals.ThisAddIn.Application.Windows;
if(windows.Count > 0)
{
for (int i=1; i<=windows.Count; i++){
PowerPoint.DocumentWindow window = windows[i];
customTaskPane = this.CustomTaskPanes.Add(new UserControl1(), "My User Control", window);
customTaskPane.Visible = true;
}
}
}
似乎这应该成功地将每个任务窗格添加到其指定的window,我无法弄清楚为什么所有任务窗格都与活动窗口相关联。我对这个问题进行了很多研究,但未能找到解决方案。我找到的最接近的是this question,但是答案对应于 PowerPoint 2007,而不是问题参考中的 2010。
如果您能深入了解 PowerPoint 为何会出现这种情况,我们将不胜感激。
【问题讨论】:
标签: c# .net vsto powerpoint office-addins