Как я могу идентифицировать document.close() и приложение.событие quite() в microsoft.office.interop.word на языке Си#
Я не могу определить, какое событие закрытия запускается кнопкой document.close() или application close(X).
1. Закройте только документ word, если пользователь закроет его с помощью File-->Close option not complete
приложение.
2. Когда пользователь открыл документ и написал в нем какой-то текст, нажмите на приложение
Кнопка Close(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; } } }
Maciej Los
это также не работает для меня. это совсем не обманчиво! Пожалуйста, будьте более конкретны и предоставьте более подробную информацию.
Примечание: MS Word-это приложение с несколькими экземплярами. Таким образом, когда вы открываете или создаете новый документ, он создает новый intance MS Word (по умолчанию). Видеть: Новый экземпляр Word появляется для запуска при создании или открытии дополнительного документа в Word 2000 и более поздних версиях Word[^]
TSharma0407
Я просто хочу отслеживать, какое событие срабатывает, закрытие файла или приложение quite/close(X) event перед закрытием документа.