none
VSTO Customer Task Pane ausblenden per VB RRS feed

  • Frage

  • Hallo,

    ich bearbeite ein kleines Projekt, in dem ich eine Customer Tast Pane in Word verwenden möchte. Dazu habe ich im Bereich "Exemplarische Vorgehensweise" ein Beispiel gefunden und dieses mit VSTO umgesetzt. Gleichzeitig habe ich ein weiteres Ribbon mit einer Schaltfläche erstellt. Damit möchte ich die CTP ein, bzw. ausblenden.  Das krieg ich aber nicht hin. Folgenden Code habe ich erstellt:

    Public Class ThisAddIn
    
        Public myUserControl1 As myCTP
        Public myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane
    
    
        Private Sub ThisAddIn_Startup() Handles Me.Startup
    
            myUserControl1 = New myCTP
            Dim myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane = _
                Me.CustomTaskPanes.Add(myUserControl1, "My Task Pane")
            myCustomTaskPane.Visible = True
        End Sub
    
        Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
    
        End Sub
    
        Public Sub showCTP()
            
            myUserControl1 = New myCTP
            Dim myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane = _
                Me.CustomTaskPanes.Add(myUserControl1, "My Task Pane")
            myCustomTaskPane.Visible = True
    
    
        End Sub
    
        Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibility
            Return New RbTexthandbuch()
        End Function
    
    End Class
    

    Die Prozedur showCTP soll die Eigenschaft Visible einstellen.

    Die Schaltfläche im Ribbon löst die Prozedur Ausblenden_Click aus. Zur Kontrolle habe ich einen MSGBOX eingefügt, sie wird gestartet.

    <Runtime.InteropServices.ComVisible(True)> _
        Public Class RbTexthandbuch
        Implements Office.IRibbonExtensibility
        Private ribbon As Office.IRibbonUI
    
        Sub Ausblenden_Click(ByVal control As Office.IRibbonControl)
            MsgBox("test")
            
    
        End Sub
    
    
        Public Sub New()
    
        End Sub
    
        Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Office.IRibbonExtensibility.GetCustomUI
            Return GetResourceText("MyFirstWordAddIn.RbTexthandbuch.xml")
        End Function
    
    #Region "Menübandrückrufe"
        'Erstellen Sie hier Rückrufmethoden. Weitere Informationen über das Hinzufügen von Rückrufmethoden erhalten Sie, indem Sie das Menüband-XML-Element im Projektmappen-Explorer markieren und dann F1 drücken.
        Public Sub Ribbon_Load(ByVal ribbonUI As Office.IRibbonUI)
            Me.ribbon = ribbonUI
        End Sub
    
    
    
    #End Region
    
    #Region "Hilfsprogramme"
    
        Private Shared Function GetResourceText(ByVal resourceName As String) As String
            Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()
            Dim resourceNames() As String = asm.GetManifestResourceNames()
            For i As Integer = 0 To resourceNames.Length - 1
                If String.Compare(resourceName, resourceNames(i), StringComparison.OrdinalIgnoreCase) = 0 Then
                    Using resourceReader As IO.StreamReader = New IO.StreamReader(asm.GetManifestResourceStream(resourceNames(i)))
                        If resourceReader IsNot Nothing Then
                            Return resourceReader.ReadToEnd()
                        End If
                    End Using
                End If
            Next
            Return Nothing
        End Function
    
    #End Region
    
    End Class
    

    Dieser Code wurde großteils von dem Assistenten erstellt. Nur die Prozedur Ausblenden_Click habe ich erstellt. Leider kann ich eine Prozedur showCTP daraus nicht starten. Warum eigentlich nicht.

    Was mache ich falsch?

    Michael Pleick

    Montag, 10. Juni 2013 19:07

Antworten

  • Hallo,

    ich habe das Problem selbst lösen können. Dazu habe ich Public shared verwendet. Nun kann ich auf die Prozeduren anderer Klassen zugreifen.

    Danke für den Tipp.

    Michael Pleick

    Samstag, 15. Juni 2013 09:10

Alle Antworten