Аннулировать ленту: как в Outlook VSTO 4 - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь включить / отключить кнопки во время моего VSTO 4 Outlook 365/2016 AddIn. Это не код XML, а "чистый .NET" .

Похоже, метод Invalidade () применяется только тогда, когда TAB-лента НЕ показывается.

Я имею в виду, что если я пытаюсь включить / отключить кнопки в коде автозагрузки (я обрабатываю события Message для «Read / Open» и «New»), я не добился успеха.

Но после того, как отобразится вкладка (и все кнопки включены), если я нажму некоторые из них и Invalidate (Control), все пойдет правильно.

Вопросы:

  • Есть ли способ сделать кнопки недействительными, не заставляя пользователя нажимать кнопку?
  • Если нет, то есть ли способ принудительно отобразить в моей TAB и Invalidate () некоторые элементы управления?

Я ценю любую помощь.

ОБНОВЛЕНИЕ

Это мой код в VB.NET:

Private WithEvents Inspectores As Outlook.Inspectors


Private Sub ThisAddIn_Startup() Handles Me.Startup


    Inspectores = Me.Application.Inspectors
    AddHandler Inspectores.NewInspector, AddressOf MessageActivity

End Sub



Friend Sub MessageActivity(ByVal Item As Object)


    Dim Status As Outlook.MailItem = TryCast(Item.currentitem, Microsoft.Office.Interop.Outlook.MailItem)


    If TypeOf Status Is MailItem Then

        If Status IsNot Nothing Then
            Try
                If Status.EntryID Is Nothing Then
                    AddHandler Status.Open, AddressOf NewingMessage
                Else
                    AddHandler Status.Read, AddressOf ReadingMessage
                End If

            Catch ex As system.Exception
                MsgBox(ex.message)
            End Try

        End If

    End If

End Sub


Sub ReadingMessage()

    Dim ribbonCollection As ThisRibbonCollection = Globals.Ribbons _
   (Globals.ThisAddIn.Application.ActiveInspector())


    'MsgBox("Opening")

    IsNotReallyNew = True

    ribbonCollection.Ribbon1.ObkRead.Enabled = True
    ribbonCollection.Ribbon1.Button1.Enabled = False
    ribbonCollection.Ribbon1.btnSign.Enabled = False
    ribbonCollection.Ribbon1.btnEncode.Enabled = False
    ribbonCollection.Ribbon1.Button3.Enabled = False

    ribbonCollection.Ribbon1.RibbonUI.Invalidate()

End Sub
...