Как мне определить события document.close () и application.quit () в Microsoft.Office.Interop.Word в c #?
Я не могу определить, какое событие close запущено document.close() или кнопка закрытия приложения (X).
- Закрыть только текстовый документ, если пользователь закрыл его, используя опцию Файл -> Закрыть не завершить приложение.
- Когда пользователь открыл документи напишите в нем некоторый текст и нажмите кнопку «Закрыть» (X) приложения, затем приложение должно запросить у пользователя запрос «сохранить этот документ« ДА »или« НЕТ »? если пользователь нажимает кнопку« НЕТ », то заполненное приложение должнобыть близким.
Примечание. Я также реализовал метод выхода из приложения "ApplicationEvents4_QuitEventHandler", но он также не работает для меня.
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
((ApplicationEvents4_Event)this.Application).NewDocument += new ApplicationEvents4_NewDocumentEventHandler(Application_NewDocument);
this.Application.DocumentOpen += new ApplicationEvents4_DocumentOpenEventHandler(Application_DocumentOpen);
this.Application.DocumentBeforeClose += new ApplicationEvents4_DocumentBeforeCloseEventHandler(Application_DocumentBeforeClose);
this.Application.WindowActivate += new ApplicationEvents4_WindowActivateEventHandler(Application_WindowActivate);
this.Application.WindowDeactivate += new ApplicationEvents4_WindowDeactivateEventHandler(Application_WindowDeactivate);
this.Application.DocumentBeforeSave += new ApplicationEvents4_DocumentBeforeSaveEventHandler(Application_DocumentBeforeSave);
//((ApplicationEvents4_Event)this.Application).Quit += new ApplicationEvents4_QuitEventHandler(Application_Quit);
}
void Application_DocumentBeforeClose(Document document, ref bool cancel)
{
if (document.Content.Characters.Count <= 1)
{
document.Close(WdSaveOptions.wdDoNotSaveChanges);
}
else
{
DialogResult DialogMessage = MessageBox.Show("Do you want to save document?", "Testing",
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
if (DialogMessage == DialogResult.Yes)
{
bool SaveAsUI = true;
bool Cancel = false;
cancel = true;
Application_DocumentBeforeSave(document, ref SaveAsUI, ref Cancel);
}
else if (DialogMessage == DialogResult.No)
{
cancel = true;
if (this.Application.Documents.Count == 1)
{
document.Close(WdSaveOptions.wdDoNotSaveChanges);
//this.Application.Quit();
}
else
{
document.Close(WdSaveOptions.wdDoNotSaveChanges);
}
}
else
{
cancel = true;
}
}
}