【发布时间】:2014-05-12 00:38:57
【问题描述】:
在我的加载项中,我需要为每个打开的文档创建一个任务窗格。在加载项的启动方法中,我订阅了 ApplicationEvents4_Event.NewDocument 和 Application.DocumentOpen 事件,然后为每个打开的文档创建一个任务窗格:
((ApplicationEvents4_Event)Application).NewDocument += CreateTaskPaneWrapper;
Application.DocumentOpen += CreateTaskPaneWrapper;
foreach (Document document in Application.Documents)
{
CreateTaskPaneWrapper(document);
}
这包括通过 Word 的菜单打开或创建文档,或在操作系统中打开现有文档文件的情况。但是,如果 Word 已经打开,则启动 WINWORD.EXE(或通过快捷方式访问它,这是一种非常常见的情况)不会触发任何一个事件,尽管打开了一个带有新文档的新窗口。我如何应对这种情况并为以这种方式创建的文档创建任务窗格?我正在使用针对 Word 2007 的 VSTO 3 和 Visual Studio 2008。
【问题讨论】:
-
我正在与非常相似的事情作斗争。您是否有机会展示一些用于订阅 ApplicationEvents4Events 处理程序的附加代码?
-
@StevenDAmico 我在这里转储了一些代码:pastebin.com/CRZmpBg5。我剪掉了一些特定于产品的代码,cmet 被匆忙翻译成英文,但除此之外它是完整的。代码来自两个不同的文件。我无法找到这个问题的正确解决方案,因此在我的插件中,如果用户单击插件功能区按钮,将创建缺少的任务窗格。另外,请查看我关于任务窗格主题的其他 SO 问题:stackoverflow.com/questions/22560441
标签: ms-word vsto add-in office-interop