首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在显示MailItem时设置ProgressBar只读(ProgressBar外接程序由VSTO设置)

在显示MailItem时设置ProgressBar只读(ProgressBar外接程序由VSTO设置)
EN

Stack Overflow用户
提问于 2015-11-16 12:29:26
回答 1查看 198关注 0票数 0

我正在用VSTO为C#中的Outlook创建一个外接程序。

在发送MailItem之前,将在发送事件中执行一些特殊任务。在完成此任务时,将显示带有进度条的模态表单。效果很好。但是,当显示进度栏时,用户无法与Outlook交互。整个Outlook被冻结了。->我希望用户可以在MailItem上完成要发送的任务时与MailItem交互。

因此,我为特殊任务创建了一个新线程,包括显示进度条。在发送事件中将执行以下步骤:

如果任务已经完成,请检查bool变量。

  1. 如果任务尚未完成,则将取消发送,并为任务创建和启动一个新线程。
  2. 在任务完成后,bool变量将被设置为true (= )。
  3. 此外,邮件项的发送方法也将被调用。

这也很好。但是带进度条的模态形式不再是模态了。用户可以与Outlook交互(很好!)。但他也可以在任务运行和进度条显示时与MailItem交互(不太好!)

因此,问题是,我如何阻止MailItem,将其设置为只读或不同的东西,以避免用户在显示进度条的同时修改MailItem?

EN

回答 1

Stack Overflow用户

发布于 2015-11-16 13:03:19

您只需要为ShowDialog方法指定父窗口句柄(打开的检查窗口)。在这种情况下,用户将无法与打开的电子邮件交互,直到进度条被隐藏。

可以将检查器窗口的一个实例转换到IOleWindow接口,在该接口中您可以获得窗口句柄。有关更多信息,请参见IOleWindow::GetWindow方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33735441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档