gpt4 book ai didi

C# Outlook 插件 - 上下文菜单处理

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:41 26 4
gpt4 key购买 nike

当您在 Outlook 中右键单击电子邮件时,我们会设置一个自定义上下文菜单,如下所示:

        private void _application_ItemContextMenuDisplay(Office.CommandBar CommandBar, Interop.Selection Selection)
{
var contextButton = (Office.CommandBarButton)CommandBar.Controls.Add(Office.MsoControlType.msoControlButton, Temporary: true);
contextButton.Visible = true;
contextButton.Caption = "&My Context Menu";
contextButton.Click += MyContextMenu_Click;
}

此方法订阅了 Application.ItemContextMenuDisplay

它工作正常,只是偶尔我们的事件会被触发多次。当您快速右键单击不同的电子邮件时,就会发生这种情况。

然后这让我想知道,什么时候清理我的临时上下文菜单项的好地方?我需要在某处取消订阅 C# 事件。这样做的预期地点在哪里? (我还认为我们可能需要调用 Marshal.ReleaseComObject)

我们在 Visual Studio 中使用 VSTO 和 Outlook 2010 项目模板。总的来说,我还没有找到很多自定义上下文菜单的好例子。

最佳答案

这种古怪之处可能就是为什么在 Outlook 2010 中,Microsoft 更倾向于 Ribbon XML context menu customizations支持 Outlook 2007 风格的 CommandBars。参见 related SO post .

至于清理 CommandBars 使用的资源,您需要附加到 Application.ContextMenuClose事件以释放资源并取消订阅您的监听器。参见 related SO post on disposing Outlook Context Menus .

您应该重构您的代码以利用更新的功能区 XML 接口(interface)来避免 CommandBars

关于C# Outlook 插件 - 上下文菜单处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com