RWJ*_*RWJ 5 vsto outlook-addin outlook-2010
我是Outlook编程的新手,所以第一步(稍后更高级)是以下任务:
Explorer部分很容易上手但我在为新的检查员做上述操作时遇到了问题
我尝试了各种方法,但似乎没有工作:
我已经尝试在NewInspector中引用Globals.Ribbons [inspector] .Ribbon1但是它总是为null
我已经尝试在NewInspector中订阅Activate事件并从那里开始,但在那里Application.ActiveInspector()为null,如果我从NewInspector事件存储检查器的全局副本,它在第一个上不起作用新检查员(仅在第二次和之后阅读邮件.不是撰写邮件)
我曾尝试使用Ribbon Load事件,但这只是第一次发生
我曾尝试使用Globals.Ribbons.Ribbon1成员,但这只是第一次使用
(我发现了很多NewInspector的样本,但似乎没有人想修改除此之外的功能区/sf/ask/549641221/ to-an-an-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);
}
Run Code Online (Sandbox Code Playgroud)
在“NewInspector”事件期间,您的自定义功能区未加载。如果您调试代码,您将看到只有在“NewInspector”事件之后,它才会转到自定义功能区设计器。您可以做的是在自定义功能区加载事件期间实现您需要的内容。那是
private void MyRibbon_Load(object sender, RibbonUIEventArgs e){}
Run Code Online (Sandbox Code Playgroud)
在这里您可以获取当前活动的检查员。从中你可以获得你需要的物品。
前任 :
Inspector inspector = Globals.WPTAddIn.Application.ActiveInspector();
if (inspector != null)
{
if (inspector.CurrentItem != null)
{
if (inspector.CurrentItem is MeetingItem)
{
MeetingItem meetingItem = (MeetingItem)inspector.CurrentItem;}}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3609 次 |
| 最近记录: |