【问题标题】:My custom Outlook Add-in is causing Excel Save dialog box to hide itself我的自定义 Outlook 加载项导致 Excel 保存对话框自行隐藏
【发布时间】:2012-02-07 08:20:13
【问题描述】:

我创建了一个 Outlook 加载项,它向新电子邮件窗口的功能区添加了一个按钮,但这会导致问题。

会发生什么:

  1. 用户已打开 Outlook。
  2. 用户打开 Excel。
  3. 用户通过文件->保存并发送->作为附件发送 excel 文档给某人
  4. 用户对文档进行了更改
  5. 用户尝试关闭文档
  6. 此时 Outlook 会提示用户保存文件,但对话框隐藏在 Excel 窗口后面,如果不做一些恶作剧,用户将无法访问它。

我的 Outlook 加载项还有许多其他功能,但我已将其固定到我创建的 Ribbon.cs 文件中,以便在新电子邮件窗口中添加一个按钮。当我将 OfficeRibbon 对象的 RibbonType 属性从 Micorosft.Outlook.Mail.Compose 更改为空时,“保存”对话框将按原样显示。当我将它改回“撰写”时,它会再次隐藏对话框。

有没有人知道解决这个问题的任何方法?我已确认当项目是 Outlook 2007 加载项或 Outlook 2010 加载项时会发生这种情况。

提前致谢。

【问题讨论】:

标签: c# excel outlook vsto outlook-addin


【解决方案1】:

所以参考 user1217053 发送的链接,答案可能是...

为 Outlook.Mailitem 创建一个类范围字段 让它绑定到 BeforeClose 事件。

在该字段的 BeforeClose 事件处理程序中,添加诸如 ... 之类的代码

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

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

【讨论】:

    【解决方案2】:

    我不知道你是否还在解决这个问题,但我遇到了完全相同的问题,然后找到了解决方案。您必须像我一样使用功能区设计器。功能区设计器会导致此问题。我不得不从 Ribbon Designer 更改为 Ribbon XML。删除代码和更改一些逻辑需要做一些工作,但这解决了问题。我听说另一个选择是使用包装类。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-11-18
      • 2016-11-05
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多