Я пытаюсь включить / отключить кнопки во время моего 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