2016-07-20 45 views
1

我使用此代码...VSTO:展望NewInspector不叫

Dim inspectors As Outlook.Inspectors = Outlook.Application.Inspectors 
AddHandler inspectors.NewInspector, AddressOf Inspectors_NewInspector 

...我的自定义面板添加到网的MailItem。

但是,如果我在窗口中使用剪切工具并告诉它通过电子邮件发送该代码段,则不会调用NewInspector,即使创建了新邮件。

任何想法为什么NewInspector不被调用?

感谢代码为

UPDATE:

这里有一个简单的示例代码。从外部程序发送邮件(如Word,Excel和截图工具等)不调用NewInspector事件......

Imports System.Runtime.InteropServices 
Imports Microsoft.Office.Interop.Outlook 
Imports Microsoft.Office.Tools 
Imports Outlook = Microsoft.Office.Interop.Outlook 

Public Class ThisAddIn  

    Private WithEvents _inspectors As Outlook.Inspectors 

    Private Sub ThisAddIn_Startup() Handles Me.Startup 
     _inspectors = Globals.ThisAddIn.Application.Inspectors 
    End Sub 

    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown 
    End Sub 

    Private Sub _inspectors_NewInspector(Inspector As Inspector) Handles _inspectors.NewInspector 
     MsgBox("New inspector") 
    End Sub 

End Class 

回答

1

NewInspector对于使用Simple MAPI或mailto链接(这是设计)创建的检查器,事件不会触发。您可以有一个定时器,定期循环访问Application.Inspectors集合,以检查是否有尚未由您的代码处理的新检查器。

+0

感谢德米特里......好吧,它必须是一个错误,因为微软声称“无论何时打开一个新的检查器窗口,无论是由于用户操作还是通过程序代码。” ......而且显然没有。而不是计时器,我使用丝带加载事件:)感谢您的帮助。 – MojoDK

0

您需要声明检查员对全球(类)级别的变量,以确保它不是垃圾收集。

+0

我试过了,但没有帮助。 – MojoDK

+0

请显示您的最新代码 –

+0

我添加了一些示例代码。谢谢。 – MojoDK