Найти и удалить все пользовательские панели задач в активной презентации - PullRequest
0 голосов
/ 07 марта 2019

Я создал способ закрывать панель задач каждый раз, когда открывается другая панель задач.Причина в том, что я хочу, чтобы в любой момент времени на одной презентации была открыта только одна область задач.Поэтому, если у меня открыто 3 презентации, я хочу, чтобы в каждой презентации была открыта не более одной панели задач.

Проблема, с которой я сталкиваюсь, заключается в том, что если у меня открыто 3 презентации, и я открываю панель задач в презентации № 1, а затем открываю панель задач в презентации № 2, она закрывает панель задач в презентации № 1.

Я хочу закрыть панель задач только в активной презентации. Никогда не хочу закрывать панель задач, которая не является активной презентацией.

Мой код выглядит следующим образом.

Private WithEvents myTaskPane As Microsoft.Office.Tools.CustomTaskPane

Try
   CloseTaskPane()
   textElementsPane = New PowerPointCommon.TextElementsMainTaskPane()

   myTaskPane = Globals.ThisAddIn.CustomTaskPanes.Add(textElementsPane, "Text", Globals.ThisAddIn.Application.ActivePresentation)

   myTaskPane.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight
   myTaskPane.Width = 360 * widthScaleFactorDPI
   myTaskPane.DockPositionRestrict = Microsoft.Office.Core.MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoChange       
   myTaskPane.Visible = True


   Friend Sub CloseTaskPane()
        Try
            If myTaskPane IsNot Nothing Then

                myTaskPane.Visible = False
                myTaskPane.Dispose()
            End If
        Catch
        End Try
...