0

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

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

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

4

1 回答 1

0

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

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

于 2017-05-10T19:51:25.830 回答