我想找到一些方法让自定义任务窗格获取当前检查器。我应该用什么方法?
我按照以下链接构建VSTO Outlook C#add:Walkthrough: Display custom task panes with email messages in Outlook
我在任务窗格上插入一个按钮。现在,我想使用此按钮通过操作Button_Click插入“test for button”等邮件标题
我尝试使用Outlook.Inspector inspector = Globals.ThisAddIn.Application.ActiveInspector();
Orkazxsopoi
获得现任检查员,但似乎不起作用。
这是我的代码如下:
Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem;
我也尝试过这种方式:
private void InsertButton_Click(object sender, EventArgs e)
{
Outlook.Inspector inspector = Globals.ThisAddIn.Application.ActiveInspector();
if (inspector is Outlook.MailItem)
{
public Outlook.MailItem mailItem;
mailItem = inspector as Outlook.MailItem;
mailItem.subject = "test for button";
}
}
第一个代码private void InsertButton_Click(object sender, EventArgs e)
{
Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem;
mailItem.subject = "test for button";
}
判断是错误的。第二个代码if
;
但我的期望输出是mailItem等于任务窗格所在的当前项目。
第一个代码示例是错误的 - “if(inspector是Outlook.MailItem)”始终为false,因为inspector是Inspector对象,而不是MailItem对象。
对于第二个示例,请显示所有代码 - 您似乎具有类级Inspector属性,但不清楚如何设置。 Globals.ThisAddIn.Application.ActiveInspector()。CurrentItem应该返回一个MailItem对象,如果它是一个电子邮件而不是另一种项目(你当然应该总是进行类型检查)。
John Hart @ GitHub回答了我的问题。以下是他的代码:
mailItem=null
原点回答在GitHub上看问题:private void Button1_Click(object sender, EventArgs e)
{
Inspector inspector = Globals.ThisAddIn.Application.ActiveInspector();
MailItem mailItem = inspector.CurrentItem as MailItem;
mailItem.Subject = "test for button";
}