[英]Set MailItem readonly while a ProgressBar is shown (Outlook Add-In by VSTO)
我正在使用VSTO在C#中为Outlook创建外接程序。
在发送MailItem之前,将在send-event中完成一些特殊任务。 完成此任务后,将显示带有进度条的模式表格。 很好 但是,尽管显示了进度条,但用户无法与Outlook进行交互。 整个Outlook被冻结。 ->我希望用户在要发送的MailItem上完成任务时可以与Outlook进行交互。
因此,我为特殊任务创建了一个新线程,包括显示进度条。 在发送事件中将执行以下步骤:
检查bool变量是否已完成任务。
这也很好。 但是,带有进度条的模式形式不再是模式形式的。用户可以与Outlook交互(很好!)。 但是他也可以在任务运行且进度条显示时与MailItem交互(不好!)...
所以问题是,如何阻止MailItem,将其设置为只读或其他方式以避免用户在显示进度栏时修改MailItem?
您只需要为ShowDialog方法指定(打开的检查器窗口的)父窗口句柄即可。 在这种情况下,除非进度条被隐藏,否则用户将无法与打开的电子邮件进行交互。
可以将Inspector窗口的实例强制转换为IOleWindow接口,从中可以获取窗口句柄。 有关更多信息,请参见IOleWindow :: GetWindow方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.