0

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

これは正常に機能しており、タスクペインが新しいウィンドウに表示されます。ただし、前のウィンドウに戻ってリボン ボタンをクリックすると、アクティブなウィンドウではなく、新しいウィンドウの作業ウィンドウが変更されます。

4

0 に答える 0