Word加载项DocumentBeforeClose事件仅触发一次

时间:2014-11-24 13:34:48

标签: c# events ms-word vsto

我正在使用c#中的Word应用程序加载项。

我正在尝试使用DocumentBeforeClose事件:

Microsoft.Office.Tools.Word.Document vstoDoc = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);

vstoDoc.BeforeClose += new System.ComponentModel.CancelEventHandler(ThisDocument_BeforeClose);

我可以处理它,但当我尝试关闭并打开文档(而不是整个应用程序)时,我再也无法处理此事件了。

编辑:

DocumentBeforeClose很不错。

但我如何使用ref bool取消

我试试:

void Application_DocumentBeforeClose(_Word.Document Doc, ref bool Cancel)
{
    Cancel = true;
}

但它的开始工作:(

1 个答案:

答案 0 :(得分:0)

您注册的事件处理程序位于一个特定文档上。如果你关闭它,事件处理程序不会计算后续文档。

如果您不想为某个特定文档触发BeforeClose事件,但对于任何已打开的文档,请使用Application.DocumentBeforeClose事件。

Globals.ThisAddIn.Application.DocumentBeforeClose += Application_DocumentBeforeClose;

void Application_DocumentBeforeClose(_Word.Document Doc, ref bool Cancel)
{
    // Doc is the document getting closed
}