【发布时间】:2015-02-15 20:40:45
【问题描述】:
当用户单击“新邮件”按钮以编写新邮件时,我试图捕捉该事件。关于这叫什么的任何建议?我一直在到处寻找它,但一切都是我直接阅读邮件的选项。
【问题讨论】:
标签: vb.net email events outlook-addin
当用户单击“新邮件”按钮以编写新邮件时,我试图捕捉该事件。关于这叫什么的任何建议?我一直在到处寻找它,但一切都是我直接阅读邮件的选项。
【问题讨论】:
标签: vb.net email events outlook-addin
在某些情况下,在 NewInspector 事件中访问 MailItem 为时过早。 IE。你不会得到一个有效的 MailItem 对象。这就是为什么我建议等待 Inspector 类的第一个 Activate 事件。
您可能会发现 MSDN 中的 Developing an Inspector Wrapper for Outlook 2010 文章很有帮助。
【讨论】:
Activate 事件发生在检查器成为活动窗口时,而在此之前访问 NewInspector 事件中的 MailItem。
当您创建新的 Outlook 项目时,Visual Studio 会创建 FirstOutlookAddIn 项目并在编辑器中打开 ThisAddIn 代码文件。
在ThisAddIn 类中声明一个名为inspectors 的字段
Private WithEvents inspectors As Outlook.Inspectors
将ThisAddIn_Startup方法替换为以下代码
Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
inspectors = Me.Application.Inspectors
End Sub
在ThisAddIn代码文件中,将以下代码添加到ThisAddIn类中
此代码为NewInspector 事件定义了一个事件处理程序。
当用户创建新邮件消息时,此事件处理程序将文本添加到消息的主题行和正文中。
Private Sub inspectors_NewInspector(ByVal Inspector As Microsoft.Office.Interop.Outlook.Inspector) Handles inspectors.NewInspector
Dim mailItem As Outlook.MailItem = TryCast(Inspector.CurrentItem, Outlook.MailItem)
If Not (mailItem Is Nothing) Then
If mailItem.EntryID Is Nothing Then
mailItem.Subject = "This text was added by using code"
mailItem.Body = "This text was added by using code"
End If
End If
End Sub
【讨论】: