Neo*_*ile 6 vb.net user-controls webusercontrol outlook-vba outlook-addin
我有一个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
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
根据 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
Run Code Online (Sandbox Code Playgroud)
请参阅此处的MSDN 参考