У меня есть Word AddIn (VSTO), который обработает документ слова после того, как он будет закрыт пользователем. К сожалению, событие DocumentBeforeClose
возникает даже в тех случаях, когда документ не собирается закрываться.Как запустить событие или запустить метод после закрытия документа?
Ex: Событие поднимается до того, как пользователю откроется диалоговое окно с предложением сохранить документ. Пользователи спрашивают, хотите ли они сохранить с помощью кнопки «Да», «Нет» и «Отмена». Если пользователь выбирает Отмена, документ остается открытым, хотя событие DocumentBeforeClose
было поднято. По этой причине существует какой-либо способ или способ сделать event
или Method
, который будет raised
или run
после того, как документ был закрыт.
Я пытался сделать так:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Globals.ThisAddIn.Application.DocumentBeforeClose += new Microsoft.Office.Interop.Word.ApplicationEvents4_DocumentBeforeCloseEventHandler(this.Application_DocumentBeforeClose);
// I want some thing like this
Globals.ThisAddIn.Application.DocumentAfterClose += new Microsoft.Office.Interop.Word.ApplicationEvents4_DocumentOpenEventHandler(this.Application_DocumentAfterClose);
}
public void Application_DocumentBeforeClose(Word.Document doc, ref bool Cancel)
{
MessageBox.Show(doc.Path, "Path");
}
// I want some thing like this
public void Application_DocumentAfterClose(string doc_Path)
{
MessageBox.Show(doc_Path, "Path");
}
Большое вам спасибо за ваш помогает @DirkVollmar. Кстати, диалоговое окно все еще запрашивает пользователя, когда он закрывает документ, не сохраняя последние изменения. поэтому я хочу, чтобы даже это было поднято после получения результата из этого диалогового окна подсказки. – hoss77
@ hoss77: Извините за путаницу, см. Мое редактирование. –
Да, вы правы Я могу запустить мой метод после этого кода: 'Application.ActiveDocument.Close (WdSaveOptions.wdPromptToSaveChanges);' Но проблема все еще существует, потому что пользователь может нажать кнопку отмены. И как я могу это знать? или как я могу показать это поле SaveChanges и получить 'DialogResult'. – hoss77