1

嘿伙计们,我在默认的电子邮件撰写表单中有一个用户控件,我想获取该窗口的邮件项。

是否有捷径可寻?

4

2 回答 2

1

由于您正在撰写电子邮件,因此您必须在 Outlook Inspector 中。所以你会有这样的代码:

Inspector inspector = window as Inspector;
MailItem mailItem = inspector.CurrentItem as MailItem;
于 2011-02-27T22:39:14.177 回答
0

假设您的用户 UserControl 上有某种类型的 CheckBox 或 RadioButton 控件,您可以利用 ActiveInspector 来获取 mailItem:

using Outlook = Microsoft.Office.Interop.Outlook;
namespace My_Outlook_Plugin
{
     public partial class UserControl_Classification : UserControl
    {
        public UserControl_Classification()
        {
                InitializeComponent();
        }

    private void UserControl_Classification_Load(object sender, EventArgs e)
    {
        
    }

    private void radioButton1_CheckedChanged(object sender, EventArgs e)
    {
        try
        {
            Inspector inspector = Globals.ThisAddIn.Application.ActiveInspector();
            if (inspector.CurrentItem is Outlook.MailItem)
                {
                    MailItem mailItem = inspector.CurrentItem as MailItem;
                    //Do something with mailItem
                    
                    Marshal.ReleaseComObject(mailItem);
                }          
         }
        catch (System.Exception ex)
        { }
    }
}

此外,这是关于设置包装器的一个非常好的解释,您需要跟踪用户可能打开并正确处理它的每个潜在 mailItem 窗口 -在此处输入链接描述

于 2021-08-25T19:10:15.330 回答