Открытие пользовательской области формы из кнопки COM COM надстройки Outlook Нажмите кнопку
Как мне активировать свою собственную область формы класса из события нажатия кнопки ленты? По сути, выполняет ту же функцию, что и Outlook Home -> Новые элементы -> Пользовательские формы -> Имя моей формы.
Я разработал COM AddIn, представляющий форму пользователю. Это был отдельный регион формы для класса IPM.Note. Но теперь, когда я отказался от этого с помощью "Replace-all" и дал собственное имя класса, я не уверен, как создать экземпляр формы из обработчика события Button1_Click класса Ribbon.
Я изо всех сил пытаюсь найти пример кода, чтобы продемонстрировать эту деталь.
Если это вызов Add("IPM.MyClassName") для коллекции элементов, я не уверен, как его кодировать.
2 ответа
Этот кажется чище:
Public Sub Button1_Click(ByVal control As Office.IRibbonControl)
Dim Items As Outlook.Items = _
Globals.ThisAddIn.Application.ActiveExplorer.CurrentFolder.Items
Dim Item As Object = Items.Add("IPM.MyMessageClass")
Item.Display()
End Sub
Когда ваш FormRegion на самом деле не зависит от папки, эта на несколько строк короче.
Следующий код работает при создании экземпляра моей пользовательской формы из события нажатия кнопки ленты.
Public Sub Button1_Click(ByVal control As Office.IRibbonControl)
Dim oApp As Outlook.Application = Globals.ThisAddIn.Application
Dim oNs As Outlook.NameSpace = oApp.GetNamespace("MAPI")
Dim oInbox As Outlook.MAPIFolder = _
oNs.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
Dim oItems As Outlook.Items = oInbox.Items
Dim oForm As Outlook.MailItem = oItems.Add("IPM.MyMessageClass")
oForm.Display(False)
End Sub