首页 > 解决方案 > 不阻止与父母互动的 ShowDialog 的替代方案

问题描述

我正在将 Outlook VBA 宏移动到 VSTO,其中一部分涉及显示用户窗体的中间执行,其中包含用户可能需要从 Outlook 复制/粘贴的各种输入。

在 VBA 中,这是通过以下方式实现的:

[...]
UserForm.Show vbModeless

Do Until UserForm.Visible = False
    DoEvents
Loop
[...]

在VB中我有:

Dim DealIDForm As New DealIdent 'form class

[...] set up form [...]
DealIDForm.ShowDialog()
[...] process input

但这会禁用与 Outlook 的交互,因此并不理想

我试过了:

Dim thread As New Thread(Sub()
                            DealIDForm.Show()
                         End Sub)

While DealIDForm.DialogResult = Windows.Forms.DialogResult.None 'not yet set
    Thread.Sleep(TimeSpan.FromMilliseconds(5))
End While

但这只是没有显示表格。有没有我可以使用的替代方案?

标签: vb.netoutlookvsto

解决方案


推荐阅读