Моя настраиваемая надстройка Outlook заставляет диалоговое окно Excel Save скрываться - PullRequest
1 голос
/ 11 января 2012

Я создал надстройку Outlook, которая добавляет кнопку на ленту нового окна электронной почты, но вызывает проблему.

Вот что происходит:

  1. У пользователя открыт Outlook.
  2. Пользователь открывает Excel.
  3. Пользователь отправляет документ Excel кому-либо через Файл-> Сохранить и отправить-> Отправить как вложение
  4. Пользователь вносит изменения в документ
  5. Пользователь пытается закрыть документ
  6. Это когда Outlook предлагает пользователю сохранить файл, но диалоговое окно скрыто за окном Excel, и пользователь не может получить к нему доступ, не выполнив некоторые махинации.

Моя надстройка Outlook выполняет много других функций, но я прикрепила ее к файлу Ribbon.cs, который я создала, чтобы добавить кнопку в новое окно электронной почты. Когда я изменяю свойство RibbonType объекта OfficeRibbon с Micorosft.Outlook.Mail.Compose на ничего, диалоговое окно сохранения отображается так, как должно. Когда я изменяю его обратно на «Создать», он снова скрывает диалоговое окно.

Кто-нибудь знает как-нибудь обойти это? Я подтвердил, что это происходит, когда проект является надстройкой Outlook 2007 или надстройкой Outlook 2010.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 июня 2013

Таким образом, в отношении ссылки, отправленной пользователем1217053, ответ, вероятно, будет следующим: ...

создать поле области видимости для Outlook.Mailitem привязать его к событию BeforeClose.

Внутри обработчика событий BeforeClose для этого поля добавьте код, например ...

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

Тогда, надеюсь, это избавит от инспектора теней.

0 голосов
/ 22 августа 2014

Я не знаю, работаете ли вы над этой проблемой или нет, но я столкнулся с точно такой же проблемой, а затем нашел решение. Вы должны использовать дизайнер ленты, как я. Дизайнер ленты вызывает эту проблему. Мне пришлось изменить конструктор ленты на XML ленты. Было немного работы по удалению кода и изменению логики, но это решило проблему. Я слышал, что другой альтернативой является использование класса-оболочки.

Надеюсь, это поможет.

...