6

У меня есть панель задач Outlook, которая открывается при открытии Outlook, и я добавил это с помощью этого подхода.Добавление существующей области задач в новое сообщение - Outlook

https://msdn.microsoft.com/en-us/library/aa942846.aspx

Я показываю и скрывая панель задач, используя пример, приведенный здесь:

https://msdn.microsoft.com/en-us/library/bb608590.aspx

Таким образом, это работает с электронной почтой, когда пользователь нажимает на кнопку переключения. Тем не менее, я добавил еще один элемент управления лентой в окне «Новое почтовое сообщение» Outlook, и я хотел бы, чтобы эта же панель задач была доступна и на стороне этого окна. Мне удалось создать еще один элемент управления лентой (designer) и добавила эту новую кнопку, но когда я переключу ее, она не открывает панель задач в новом окне почтового сообщения. Он только переключает существующее окно панели задач, доступное в папке «Входящие».

Код для нового почтового сообщения Ribbon Control:

Imports Microsoft.Office.Tools.Ribbon 
Imports Outlook = Microsoft.Office.Interop.Outlook 
Imports Microsoft.Office.Tools 

Public Class ComposeSidebarRibbon 

    Private Sub ComposeSidebarRibbon_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load 

    End Sub 

    Private Sub SidebarToggleButton_Click(sender As Object, e As RibbonControlEventArgs) Handles SidebarToggleButton.Click 
     Globals.ThisAddIn.TaskPane.Visible = TryCast(sender, Microsoft.Office.Tools.Ribbon.RibbonToggleButton).Checked 
    End Sub 
End Class 

Как я могу идти об этом?

ответ

2

Согласно MSDN вы можете добавить больше чем одну ленту с помощью различных идентификаторов для ленточек -

Вы можете добавить более одной ленты к проекту. Если несколько лент совместно используют идентификатор ленты, переопределите метод CreateRibbonExtensibilityObject в классе ThisAddin вашего проекта, чтобы указать, какую ленту отображать во время выполнения.

Функция использовать для этого будет аналогична -

Protected Overrides Function CreateRibbonExtensibilityObject() As _ 
    Microsoft.Office.Core.IRibbonExtensibility 
    If myCondition = True Then 
     Return Globals.Factory.GetRibbonFactory().CreateRibbonManager _ 
      (New Microsoft.Office.Tools.Ribbon.IRibbonExtension() _ 
       {New Ribbon1()}) 
    Else 
     Return Globals.Factory.GetRibbonFactory().CreateRibbonManager _ 
      (New Microsoft.Office.Tools.Ribbon.IRibbonExtension() _ 
       {New Ribbon2()}) 
    End If 
End Function 

Пожалуйста, смотрите ссылку MSDN HERE

+0

И что бы myCondition быть в случае, я уже упоминал выше? – Neophile

+0

Я не думаю, что вы поняли, что я имел в виду, в основном это панель задач, которая не отображается в окне сообщений New Mail. Мои элементы управления лентой ведут себя и работают, как ожидалось. – Neophile

+0

Я извиняюсь, возможно, неправильно понял. См. Эту ссылку https://msdn.microsoft.com/en-us/library/bb608622(v=vs.100).aspx или этот https://msdn.microsoft.com /en-us/library/bb296010(v=vs.100).aspx –