Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 即使在Outlook中,如何附加到BeforeAttachmentRead?_C#_Event Handling_Vsto_Outlook Addin_Outlook 2010 - Fatal编程技术网

C# 即使在Outlook中,如何附加到BeforeAttachmentRead?

C# 即使在Outlook中,如何附加到BeforeAttachmentRead?,c#,event-handling,vsto,outlook-addin,outlook-2010,C#,Event Handling,Vsto,Outlook Addin,Outlook 2010,我想在用户在Outlook中查看附件之前采取一些措施,并想在VSTO插件中挂接beforeattachmentrad事件。我看到一些代码在收件箱中迭代并将事件添加到每个邮件项中: foreach (object o in inbox.Items) { mailItem = o as Outlook.MailItem; ... ((Outlook.ItemEvents_10_Event)mailItem).BeforeAttachmentRead += new Outlook.ItemEve

我想在用户在Outlook中查看附件之前采取一些措施,并想在VSTO插件中挂接
beforeattachmentrad
事件。我看到一些代码在收件箱中迭代并将事件添加到每个
邮件项中

foreach (object o in inbox.Items)
{
 mailItem = o as Outlook.MailItem;
 ...
 ((Outlook.ItemEvents_10_Event)mailItem).BeforeAttachmentRead += new Outlook.ItemEvents_10_BeforeAttachmentReadEventHandler(MailItem_BeforeAttachmentRead);
}
但这对我来说似乎效率很低(收件箱中的子文件夹呢?)

是否有更有效的方法响应AttachmentRead之前的
事件

但这对我来说似乎效率很低(收件箱中的子文件夹呢?)

我同意会的

我建议。现在,每当用户选择某个内容时,您可以检查它是否是邮件项(可以是其他内容),然后订阅BeforeAttachmentRead事件。你可以检查一下。如果邮件项目没有附件,则您无事可做

其他一些需要检查的东西

  • 检查Explorer CurrentFolder.WebViewOn是否为false
  • 检查选择计数-您只想在选择计数为1时执行某些操作
  • 用户可以选择许多不同的东西。在进行选择前,请检查它的类型是否为Outlook.MailItem