我正在为VSTO中的公司创建一个COM加载项,并且在从功能区引用每个窗口的正确任务窗格时出现问题。
我有一个自定义任务窗格,根据功能区点击显示/隐藏任务窗格上的不同命令。当我打开1个文档窗口时,这可以正常工作,但是当我打开多个文档窗口时,功能区控制仅打开的最终窗口上的自定义任务窗格,而不是活动窗口。
我的代码(简化)是
Private Sub Agenda_Click(sender As Object, e As RibbonControlEventArgs) Handles Agenda.Click
With Globals.ThisAddIn.AddIn_TP
.Width = 300
.Visible = True
End With
With Globals.ThisAddIn.AddIn_control1
With .Panel_table
.Visible = False
.Left = 400
End With
With .Panel_SummaryBox
.Visible = True
.Left = 5
End With
End with
End Sub
我知道我需要以某种方式引用活动窗口和链接的任务窗格,但我不知道如何使其工作。
在加载任务窗格方面,每次打开/创建演示文稿时都会调用代码,该代码会加载该窗口的任务窗格。代码是:
Private Sub Application_AfterNewPresentation(Pres As PowerPoint.Presentation) Handles Application.AfterNewPresentation
AddIn_control1 = New AddIn_control
AddIn_taskpane = Me.CustomTaskPanes.Add(AddIn_control1, "Add-In Taskpane", Me.Application.ActiveWindow)
End Sub
这工作正常,任务窗格在新窗口中可见。但是,如果我返回上一个窗口并单击功能区按钮,它将更改新窗口上的任务窗格,而不是活动窗口。