【发布时间】:2012-07-03 08:17:05
【问题描述】:
我是 Outlook 编程的新手,所以第一步(稍后会更高级)是以下任务:
- 创建一个新的功能区 (Ribbon1) 选项卡(应在资源管理器和新检查器中显示)
- 选择(探索)或打开(检查器)邮件时,功能区选项卡应显示邮件主题(如测试所述)
Explorer 部分很容易上手,但我在为新检查员执行上述操作时遇到问题
我尝试了各种方法,但似乎都没有效果:
我已尝试在 NewInspector 中引用 Globals.Ribbons[inspector].Ribbon1 但始终为空
我已尝试在 NewInspector 中订阅 Activate 事件并从那里执行,但在那里 Application.ActiveInspector() 为空,如果我存储来自 NewInspector 事件的检查器的全局副本,它不适用于第一个新检查员(仅在第二个检查员之后和阅读邮件上。不适用于撰写邮件)
我尝试过使用 Ribbon Load 事件,但这只是第一次发生
我曾尝试使用 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);
}
【问题讨论】:
-
分享您的来源,了解您如何连接
InspectorsNewInspector。整个 AddIn 类将有利于上下文。
标签: vsto outlook-addin outlook-2010