在BeforeClose事件期间保存Word文档时,并不总是触发关闭事件

时间:2012-10-05 15:27:47

标签: c# ms-word vsto add-in

我使用VSTOc#创建了Microsoft Word加载项。

对于每个文档,我使用文档ShutDown事件来清理我的父对象和BeforeClose事件以进行父对象的预关闭验证。我的验证需要保存文档并尝试在BeforeClose事件中执行此操作。

如果之前从未保存过文档,则会出现“另存为”对话框。如果用户单击“取消”,则会抛出COMException并正确捕获。然后会出现Save/Don't Save/Cancel对话框(通常会显示即将关闭未保存更改的文档)。如果用户从第一个“另存为”对话框保存或从第二个保存对话框保存,则会正确触发ShutDown事件。 但是,如果用户在第二个对话框中单击“不保存”,则不会触发ShutDown事件。

private void WordDocument_BeforeClose(object sender, System.ComponentModel.CancelEventArgs e)
{
  try
  {
    this.WordDocument.Save();
  }
  catch (System.Runtime.InteropServices.COMException a)
  {
    log.Error(a.Message);
  }
}

private void WordDocument_Shutdown(Object sender, EventArgs e)
{
  // Parent cleanup.
}

0 个答案:

没有答案
相关问题