我基本上希望这样做: C# (outlook add-in) context menu on folders
但问题是它永远不会触发FolderContextMenuDisplay事件。 看看文档似乎已被弃用,但有人知道我应该使用什么吗?
谢谢!
答案 0 :(得分:2)
通过使用Ribbon XML,您可以设置上下文菜单的可见性。
在这篇文章中,我将向您展示如何使用Ribbon XML在上下文菜单中显示和隐藏项目。 当用户右键单击Outlook文件夹时,将显示上下文菜单。
首先,将Ribbon XML项添加到Outlook项目中。
然后将以下代码添加到ThisAddIn类中。此示例假定您的功能区称为Ribbon1,并且您使用的是C#:
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new Ribbon1();
}
接下来,使用以下内容替换Ribbon1.xml文件的内容:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<contextMenus>
<contextMenu idMso="ContextMenuFolder">
<button idMso="FolderPropertiesContext" getVisible="IsVisible" />
</contextMenu>
</contextMenus>
</customUI>
但是等等。还有更多! 在Ribbon1.cs文件中创建此方法。
public bool IsVisible(Office.IRibbonControl control)
{
string name = ((Outlook.Folder)control.Context).Name;
if (foldername == "Inbox")
{
return false;
}
return true;
}
当用户右键单击该文件夹时,我们会通过返回false告诉Outlook不显示该命令。否则,我们告诉Outlook继续并通过返回true使命令可见。