使用Visual Studio 2013,我以.NET Framework 4为目标,并创建了一个针对Office 2007和Office 2010的单个加载项 . 我选择了一个2010 Addin,但它应该在2007年的工作中使用此链接:https://blogs.msdn.microsoft.com/vsto/2010/06/04/creating-an-add-in-for-office-2007-and-office-2010-that-lights-up-on-office-2010-mclean-schofield/
我使用了功能区设计器(而不是功能区xml)在我的AddInin启动方法中,我有以下内容:
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
((Word.ApplicationEvents4_Event)this.Application).NewDocument += new Microsoft.Office.Interop.Word.ApplicationEvents4_NewDocumentEventHandler(Application_NewDocument);
this.Application.DocumentBeforeClose += new Word.ApplicationEvents4_DocumentBeforeCloseEventHandler(Application_DocumentBeforeClose);
//THIS LINE FAILS IN Word 2007 but not in Word 2010
this.Application.ActiveDocument.Saved = false;
}
基本上我正在捕捉close事件,我在那个事件中做了一些我自己的自定义代码 . 这在2010年完美运行 . 2007年功能区安装和一些功能工作,但是当我关闭文档时,我的'Application_DocumentBeforeClose'关闭事件dosnt在Word 2007中被调用 . 有什么建议吗?
更新:我按照建议更改了我的代码,但是当我打开一个错误的文档时,下面的行在Word 2007中失败 - “此命令不可用,因为没有文档打开 . ”
this.Application.ActiveDocument.Saved = false;
1 回答
看看类似的论坛帖子 - Word DocumentBeforeClose not firing . 以下是它所说的内容: