我的自定义Outlook加载项导致Excel保存对话框隐藏自己

我已经创build了一个Outlook加载项,它将一个button添加到一个新的电子邮件窗口的function区,但是这会导致一个问题。

这是发生了什么事情:

  1. 用户有Outlook打开。
  2. 用户打开Excel。
  3. 用户通过文件 – >保存并发送 – >作为附件发送Excel文件给别人
  4. 用户对文档进行更改
  5. 用户尝试closures文档
  6. 这是当Outlook提示用户保存该文件,但对话框隐藏在Excel窗口后面,用户无法进入它,而不做一些恶意。

我的Outlook加载项还有许多其他的function,但是我已经把它固定到我创build的Ribbon.cs文件中,以便将button添加到新的电子邮件窗口。 当我从Micorosft.Outlook.Mail.Compose更改OfficeRibbon对象的RibbonType属性为空,保存对话框显示为它应该。 当我将其更改回“撰写”时,它会再次隐藏对话框。

有谁知道有什么办法呢? 我已经确认这发生在项目是Outlook 2007加载项或Outlook 2010加载项时。

提前致谢。

所以参考user1217053发送的链接,答案可能会沿着…

创build一个类作用域的Outlook.Mailitem它绑定到BeforeClose事件。

在此字段的BeforeClose事件处理程序中添加代码,如…

cMailItem_BeforeClose(bool Cancel) { var Insp = cMailItem.GetInspector(); Insp.Close(); Marshal.FinalReleaseCOMObject(Insp); Insp = null; } 

那么希望这会摆脱影子检查员。

我不知道你是否还在处理这个问题,但是我面对同样的问题,然后find解决scheme。 你必须像我一样使用Ribbondevise师。 色带devise者引起这个问题。 我必须从Ribbondevise器更改为Ribbon XML。 删除代码并改变一些逻辑是有点工作的,但是解决了这个问题。 我听说其他的方法是使用包装类。

希望这可以帮助。