嘿伙计们,我在默认的电子邮件撰写表单中有一个用户控件,我想获取该窗口的邮件项。
是否有捷径可寻?
由于您正在撰写电子邮件,因此您必须在 Outlook Inspector 中。所以你会有这样的代码:
Inspector inspector = window as Inspector;
MailItem mailItem = inspector.CurrentItem as MailItem;
假设您的用户 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 窗口 -在此处输入链接描述