我在PST 2013的VSTO中创建了一个COM加载项,并且在活动窗口中引用自定义任务窗格时出现问题。
我的代码应该只为活动窗口显示自定义任务窗格,但它当前针对所有文档窗口运行。
我的代码是:
firstname.lastname@specific.site
washington.guedes@specific.site
使用以下代码
将任务窗格添加到创建/打开的每个新演示文稿中For Each CTP As Microsoft.Office.Tools.CustomTaskPane In Globals.ThisAddIn.CustomTaskPanes
If CTP.Window Is Globals.ThisAddIn.Application.ActiveWindow Then
CTP.Visible = True
End If
Next
答案 0 :(得分:5)
我进行了一个小实验,结果是CustomTaskPane.Window总是ActiveWindow。因此,为了解决这个问题,您可以在某些词典中继续跟踪变形金刚:
Dictionary<CustomTaskPane, PowerPoint.Presentation> ctpDict = new Dictionary<CustomTaskPane, PowerPoint.Presentation>();
void Application_AfterNewPresentation(PowerPoint.Presentation Pres) {
AddIn_control AddIn_control1 = new AddIn_control();
CustomTaskPane AddIn_taskpane = this.CustomTaskPanes.Add(AddIn_control1, "Add-In Taskpane", this.Application.ActiveWindow);
ctpDict.Add(AddIn_taskpane, Pres);
}
以后你可以使用它:
if (cptDict[CTP] == Globals.ThisAddIn.Application.ActivePresentation) {
CTP.Visible = true;
}