使用 Visual Studio 2013,我以 .NET Framework 4 为目标,并创建了一个同时针对 Office 2007 和 Office 2010 的加载项。我选择了一个 2010 加载项,但它应该在 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;
}
基本上我正在捕获关闭事件,并在该事件中执行一些我自己的自定义代码。这在 2010 年完美运行。在 2007 年,功能区安装并且某些功能有效,但是当我关闭文档时,我的“Application_DocumentBeforeClose”关闭事件在 Word 2007 中被调用。有什么建议吗?
更新:我按照建议更改了我的代码,但是当我打开带有错误的文档时,以下行在 Word 2007 中失败 - “此命令不可用,因为没有打开文档。”
this.Application.ActiveDocument.Saved = false;