【问题标题】:VSTO Outlook 2010 C# Active Explorer on CloseVSTO Outlook 2010 C# 活动资源管理器关闭
【发布时间】:2014-08-21 19:13:53
【问题描述】:

我正在开发 VSTO Outlook2010 客户端插件。我有一个功能区,它显示在新的电子邮件资源管理器窗口中。我需要编写一个在新电子邮件窗口关闭时执行某些操作的方法。我知道在发送电子邮件时窗口会自行关闭,但我需要一种在窗口关闭而不发送电子邮件时触发的方法,例如当用户想要取消时。

任何带有示例代码的想法都将受到高度赞赏。

我从其他帖子中尝试过。下面两行说:不能隐式转换类型 .存在显式转换。你错过了演员表吗?

Inspector OpenedMailItem;
//within the start-up method 
Inspector insp = this.Application.Inspectors; 
insp.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(OnNew‌​Inspector);


//new function, within class
public void OnNewInspector(Outlook.Inspector inspector) 
{ 
   if (inspector.CurrentItem is Microsoft.Office.Interop.Outlook.MailItem) 
   {  
       OpenedMailItem = inspector.CurrentItem as Microsoft.Office.Interop.Outlook.MailItem;               
       ((ItemEvents_10_Event)OpenedMailItem).Close += new Outlook.ItemEvents_10_CloseEventHandler(MailItem_Close); 
   } 
 } 

void(MailItem)
{ 
    //something 
} 

出现很多错误并悬停在 sasy 上:无法隐式转换类型 .存在显式转换。你错过了演员表吗?

我正在导入所有这些:

using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml.Linq; 
using Outlook = Microsoft.Office.Interop.Outlook; 
using Excel = Microsoft.Office.Interop.Excel; 
using System.Windows.Forms; using System.Net; 
using System.Web; using System.IO; 
using System.Text.RegularExpressions; 
using Redemption; 
using System.Runtime.InteropServices; 
using Microsoft.Office.Interop.Outlook; 
using Exception = System.Exception;

【问题讨论】:

    标签: c# outlook vsto outlook-addin visual-studio-addins


    【解决方案1】:

    捕获 Application.Inspectors.NewInspector 事件,将新检查器添加到检查器列表中。监听 Inspector.Close 事件。当它触发时,从列表中删除检查器。

    【讨论】:

    • 您可能需要更新原始帖子以确保代码格式正确。确切的错误是什么?
    • 我已经更新了主帖。我得到:不能隐式转换 type 。存在显式转换。你缺演员吗?关于分配变量:insp 和 OpenMailItem。谢谢
    • 它告诉您显式转换为 MailItem: OpenedMailItem = (MailItem)inspector.CurrentItem as ... 请记住,只有在您真正编辑邮件项时它才会起作用。如果您编辑联系人、约会等,它将失败。
    • 你能添加一个示例代码如何执行“当它触发时,从列表中删除检查器。”?因为在关闭事件中,您没有任何可能访问关闭-“检查员”-或者是吗?
    • 关闭事件在 Inspector 对象的特定实例上触发。不要将实际的 Inspector 对象添加到列表中,而是创建将 Inspector 作为成员变量并具有 Inspector.Close 事件处理程序的包装类。当事件触发时,您可以从列表中移除包装对象 (this)。
    猜你喜欢
    • 1970-01-01
    • 2018-08-16
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2013-12-26
    相关资源
    最近更新 更多