我是 Outlook 编程的新手,所以第一步(稍后更高级)是以下任务:
- 创建一个新的功能区(Ribbon1)选项卡(应在资源管理器和新检查器中显示)
- 选择(探索)或打开(检查器)邮件时,功能区选项卡应显示邮件的主题(如测试所述)
Explorer 部分很容易上手,但我在为新检查员执行上述操作时遇到问题
我尝试了各种方法,但似乎都没有奏效:
我已经尝试在 NewInspector 中引用 Globals.Ribbons[inspector].Ribbon1 但这始终为空
我已经尝试在 NewInspector 中订阅 Activate 事件并从那里执行它,但是在那里 Application.ActiveInspector() 为空,如果我从 NewInspector 事件中存储检查器的全局副本,它在第一个上不起作用新检查员(仅在第二个之后以及在阅读邮件时。而不是在撰写邮件时)
我尝试使用功能区加载事件,但这只是第一次发生
我尝试使用 Globals.Ribbons.Ribbon1 成员,但这只是第一次工作
(我发现了很多 NewInspector 的样本,但似乎没有人想修改这个功能区以外的功能区https://stackoverflow.com/questions/7852017/outlook-2007-ribbon-object-reference-not-set- to-an-instance-of-an-object并且没有答案)
这快把我逼疯了……真的没有办法做这么简单的任务吗!?
示例代码供参考
void InspectorsNewInspector(Outlook.Inspector inspector)
{
AddInspectorEventHandlers(inspector);
}
private void AddInspectorEventHandlers(Outlook.Inspector inspector)
{
if (inspector == null)
{
return;
}
Ribbon1 ribbon1 = Globals.Ribbons[inspector].Ribbon1; //This always return null!!!
((Outlook.InspectorEvents_10_Event)inspector).Activate += InspectorActivate;
((Outlook.InspectorEvents_10_Event)inspector).Close += InspectorClose;
_openInspectors.Add(inspector);
}