Outlook 加载项 mailitem.display 无法运行 Visual Basic

Outlook add-in mailitem.display not working Visual Basic

我正在将一些 outlook VBA 宏转换为插件。我在使用基于模板创建电子邮件的宏时遇到困难。我决定编写一个简单的按钮来创建和显示带有主题测试的新电子邮件。

一切都在努力显示没有发生的电子邮件。

Private Sub ButtonGenEmail_Click(sender As Object, e As EventArgs) Handles ButtonGenEmail.Click
    Me.Close()
    Dim objApp As Outlook.Application
    Dim objMail As Outlook.MailItem
    objApp = Globals.ThisAddIn.Application
    objMail = objApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem)
    objMail.Subject = "test"
    objMail.Save()
    objMail.Display(False)
End Sub

有一次我在 objMail.Display(False) 之后添加了 msgbox "Done",但该消息从未出现。

提前致谢

这显然应该有效。我对 Outlook 不是很熟练,但我想这里的问题是你 运行 它来自一个表单(我看到 Me.Close) 那么 Outlook 是否会因为表单仍处于打开状态而阻止显示邮件(我猜 modal = ShowDialog())?

我认为您必须将表单更改为非模态形式(使用 Show() 而不是 ShowDialog() 或在表单已关闭,类似

下面的所有代码都是我脑子里写的,所以我可能会漏掉一些东西

一种方法从中初始化表单

Dim frm as new YourForm()
frm.ShowDialog()

if frm.MyState = TheyClickOnButton Then
  ' Run your mailItem code here
End If

表单代码

Public Enum State
  Unknown = 0
  TheyClickedOnButton
End Enum

Public Property MyState as State

Private Sub ButtonGenEmail_Click(sender As Object, e As EventArgs) Handles ButtonGenEmail.Click
    MyState = TheyClickedOnButton
    Me.Close()    
End Sub