我正在使用VSTO在C#中创建一个Outlook加载项。
在发送MailItem之前,将在send-event中完成一些特殊任务。完成此任务后,将显示带有进度条的模态表单。这很好。但是,当显示进度条时,用户无法与Outlook交互。整个展望被冻结。 - >我希望用户可以在要发送的MailItem上完成任务时与Outlook进行交互。
所以我为特殊任务创建了一个新线程,包括显示进度条。 以下步骤将在发送事件中完成:
如果任务已经完成,请检查bool变量。
这也很好。但随后进度条的模态形式不再是模态的..用户可以与Outlook交互(好!)。但是,当任务正在运行且进度条显示时,他也可以与MailItem交互(不好!)......
所以问题是,如何阻止MailItem,将其设置为只读或不同的东西以避免用户在显示进度条时修改MailItem?
答案 0 :(得分:0)
您只需要为ShowDialog方法指定(打开的检查器窗口的)父窗口句柄。在这种情况下,在隐藏进度条之前,用户将无法与打开的电子邮件进行交互。
可以将Inspector窗口的实例强制转换为IOleWindow界面,您可以在其中获取窗口句柄。有关详细信息,请参阅IOleWindow::GetWindow方法。