【发布时间】:2019-09-03 09:39:08
【问题描述】:
我在使用非常简单的 VSTO 插件时遇到了一些问题。
我通过 Designer(Ribbon1 和 Ribbon2)添加了两个自定义功能区,以便在两个内置功能区(Microsoft.Outlook.Mail.Read 和 Microsoft.Outlook.Explorer)上创建自定义按钮。
我想根据所选邮件的主题设置功能区按钮的“启用”属性。
它在资源管理器窗口/功能区中运行良好,但我无法在检查器窗口中解决它。
问题是 Outlook 只生成一次检查员功能区,所以当我在检查员窗口中打开另一封邮件时,我无法更改按钮的状态。我尝试了 Invalidate() 方法并将 Ribbon XML 与 getEnabled 一起使用,但我没有成功。有什么问题?
namespace ApproveReport
{
public partial class ThisAddIn
{
// Explorer object
Outlook.Explorer ThisExplorer;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
// SelectionChange Event
ThisExplorer = Globals.ThisAddIn.Application.ActiveExplorer();
ThisExplorer.SelectionChange += new Outlook.ExplorerEvents_10_SelectionChangeEventHandler(ThisExplorer_SelectionChange);
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
// Empty
}
public void ThisExplorer_SelectionChange()
{
if(ThisExplorer.Selection.Count == 1)
{
Outlook.MailItem OriginalMessage = ThisExplorer.Selection[1];
if (OriginalMessage.Subject.Contains("Report"))
{
Globals.Ribbons.Ribbon1.buttonApproveReport.Enabled = true;
Globals.Ribbons.Ribbon2.buttonApproveReport.Enabled = true;
}
else
{
Globals.Ribbons.Ribbon1.buttonApproveReport.Enabled = false;
Globals.Ribbons.Ribbon2.buttonApproveReport.Enabled = false;
}
}
}
}
}
【问题讨论】:
标签: c# outlook vsto outlook-addin office-addins