1

我们目前使用以下代码在 Outlook 中创建电子邮件,以便用户可以在 Outlook 中键入他们想要的内容,然后在发送电子邮件时,系统会提示他们查看是否要保存电子邮件。

            Dim objOutlook As Object
            Dim objMessage As Object
            Dim objInspector As Object

            If strEMail <> "" Then
                objOutlook = CreateObject("Outlook.Application")
                objMessage = objOutlook.CreateItem(0)
                objMessage.To = strEMail

                objInspector = objMessage.GetInspector
                objInspector.Display()

                While Not objInspector.CurrentItem Is Nothing
                End While

                frmSaveSentEmail.BringToFront()
                frmSaveSentEmail.ShowDialog()

只要他们不使用 Word 作为电子邮件编辑器,该代码就可以在 Outlook 2003 上正常工作。但是,将 Word 设置为电子邮件编辑器后,测试电子邮件对象是否已关闭的 while 循环永远不会结束。

有没有办法以不同的方式处理这个问题,以便即使使用 Word 作为编辑器也能正常工作?

4

2 回答 2

0

我对通过 VB.NET 编程 Outlook 的经验并不丰富,但这个循环确实看起来很可疑。也许您应该尝试利用检查器的Close事件,而不是反复检查它的CurrentItem属性。如果我没记错的话,您应该能够在事件处理程序中显示您的对话框。

于 2010-07-28T23:28:53.870 回答
0

最终将循环更改为:

  While Not objOutlook.ActiveInspector Is Nothing
  End While

这解决了这个问题。

于 2010-07-29T14:47:58.657 回答