Во время написания надстройки для офиса мне пришлось определить обработчик событий для события DocumentBeforeSave
.Событие DocumentBeforeSaveEventHandler, поднятое, когда сохранение было отклонено
Этот обработчик отлично работает, за исключением одного исключения. Данное исключение исходит из следующего:
- Открываю документ с текстом и редактирую текст.
- Я нажимаю на кнопку закрытия.
- Word спрашивает меня, если я хочу
save
,don't save
илиcancel
. - Я выбираю
don't save
.
После этих шагов офис по-прежнему заставляет меня в событии DocumentBeforeSave. Без способа определить, намерен ли пользователь отменить его сохранение или нет.
Есть ли способ проверить, выбрал ли пользователь сохранение или нет, и если да, то как? До сих пор MSDN и другие источники пришли пустым.
Примечание: В офисе 2013 и выше, то это должно быть проверено Doc.IsInAutosave
, к сожалению, эта функция не существует в офисе 2007 и Office 2010.
Ваше предположение верно, это решает проблему, которая у меня есть. Большое спасибо. Я никогда не знал, что это возможно. – creulcat
Так как это решило некоторые преднамеренные проблемы, этот метод, похоже, не улавливает пользовательскую информацию о закрытии документа и получении подсказки с вопросом, хочу ли я сохранить свои изменения. – creulcat
@creulcat: Если вам повезет, вы можете заставить этот сценарий работать, перезаписав соответствующие команды (вы можете попробовать, например, «FileClose», «FileCloseAll», «FileCloseOrExit», «WindowClose» или что-нибудь еще, что похоже на закрытие документ). Конечно, будет непросто охватить все возможные сценарии ... –