禁用Outlook电子邮件编辑器

时间:2017-05-10 14:52:09

标签: outlook modal-dialog addin-express

我正在开发一个使用Add-in Express构建的Outllok。我正在尝试显示一个模式进度对话框,该对话框仅阻止当前的邮件编辑器/编辑器窗口,以便用户在显示此对话框时仍可以使用Outlook,但他不应该能够编辑当前的电子邮件。我尝试使用

dialog.ShowDialog(new WindowWrapper(ADXAddinModule.CurrentInstance.GetOutlookWindowHandle(mail.GetInspector)));

但它会阻止整个Outlook。 WindowWrapper只是一个实现System.Windows.Forms.IWin32Window的简单类。有没有办法实现这种行为?

1 个答案:

答案 0 :(得分:0)

没有内置机制。在返回其他窗口之前应该关闭一个对话框窗口,因为Outlook窗口不是独立的应用程序,它们都代表一个应用程序 - MDI。

作为一种解决方法,您可以使用Form类的Show方法。在这种情况下,您将能够将焦点移动到Outlook中的任何窗口。要仅阻止当前邮件编辑器/编辑器窗口(所谓的检查器),您可以处理检查器成为活动窗口时触发的Inspector类的Activate事件,无论是由于用户操作还是通过程序代码。因此,在事件句柄中,您可以将窗体表格放在前面,以防止UI中的任何更改。