我们目前使用以下代码在Outlook中创建电子邮件,以便用户可以在Outlook中键入他们想要的内容,然后在发送电子邮件时,系统会提示他们是否要保存电子邮件。< / p>
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作为编辑器也可以使用它?
答案 0 :(得分:0)
我对通过VB.NET编程Outlook的经验并不十分,但是这个循环当然看起来很可疑。也许您应该尝试利用检查员的Close
event而不是反复检查其CurrentItem
属性。如果我没有弄错,你应该能够在事件处理程序中显示你的对话框。
答案 1 :(得分:0)
结束将循环更改为:
While Not objOutlook.ActiveInspector Is Nothing
End While
这解决了这个问题。