Home > database >  My Action Pane keeps popping up at start when I open my Excel VSTO document-level even though I forc
My Action Pane keeps popping up at start when I open my Excel VSTO document-level even though I forc

Time:11-02

I created an "Excel VSTO document-level" project in Visual Studio. I have a pre designed "Action Pane" and a Tab Ribbon with a button in it to show my action pane.

My problem is my action pane keeps popping up (show) at least 1 time and quickly disappears before I do anything.

Here is my code so far in my ribbon:

Imports Microsoft.Office.Tools.Ribbon

Public Class Ribbon1

    Dim actionsPane1 As New ActionsPaneControl1()

    Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load
        Globals.ThisWorkbook.ActionsPane.Clear()
        Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane1)
        actionsPane1.Hide()
        Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False
    End Sub

    Dim boolAP1toggle As Boolean = True
    Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click
        If boolAP1toggle = True Then
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
            actionsPane1.Show()
            boolAP1toggle = False
        Else
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False
            actionsPane1.Hide()
            boolAP1toggle = True
        End If
    End Sub
End Class

CodePudding user response:

There is no need to show or hide methods of the pane class. Instead, you need to rely on the DisplayDocumentActionTaskPane property which is set to true to display the Document Actions task pane; set to false to hide the Document Actions task pane.

    Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click
        If boolAP1toggle = True Then
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
            boolAP1toggle = False
        Else
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False
            boolAP1toggle = True
        End If
    End Sub

CodePudding user response:

I found my mistake:

Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane1)

will inevitably show Actions Pane at the time when you try to add any form to it, so I needed to add it my Button1_Click event handler

  • Related