我有一个Outlook任务窗格,当您打开Outlook时会打开,我已经使用这种方法添加了它。
https://msdn.microsoft.com/en-us/library/aa942846.aspx
我使用此处给出的示例显示并隐藏任务窗格:
https://msdn.microsoft.com/en-us/library/bb608590.aspx
因此,当用户点击切换按钮时,这适用于电子邮件。但是,我在Outlook的“新邮件消息”窗口中添加了另一个功能区控件,我希望同一个任务窗格也可以在该窗口的一侧使用。我设法创建另一个功能区控件(设计器)并添加了这个新按钮但是当我切换它时,它不会在新邮件消息窗口上打开任务窗格。它仅切换收件箱中可用的现有任务窗格窗口。
新邮件功能区控件的代码:
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
我该怎么做呢?
答案 0 :(得分:2)
根据MSDN,您可以使用不同的ID来添加多个功能区 -
您可以向项目添加多个功能区。如果多个功能区共享功能区ID,请覆盖项目的ThisAddin类中的CreateRibbonExtensibilityObject方法,以指定在运行时显示哪个功能区。
用于此的功能类似于 -
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