0

我使用 Visual Studio 2010 和 .NET 3.5 为 Word 2007 开发了一个应用程序级插件。它所做的部分工作是使用

Globals.ThisAddIn.Application.Selection.Range

插入文本。

但是,当没有加载文档时,此代码将失败。我可以捕获异常或以编程方式检测文档当前是否打开,但我认为必须有更简单的方法......

当 Word 2007 打开但未加载文档时,功能区上的大多数按钮都被禁用(即灰显)。

知道这是如何实现的吗?加载项是否会挂接到事件并相应地禁用它们的按钮?如果是这样,这将是

DocumentBeforeClose

事件,如果在没有文档的情况下以某种方式打开 Word,这是否会有风险?(即没有加载文档,但尚未触发事件。)

提前致谢!

更新:好的,似乎在使用

getEnabled="MyMethod"

XML 的属性可能是前进的方向,但这似乎只适用于功能区上的单个控件,而不是整个功能区本身。

4

2 回答 2

0

尝试改用 DocumentChange 事件(请参阅我在此线程上的回答)。

于 2011-07-11T11:36:46.923 回答
0

你基本上回答了你自己的问题。

我可以捕获异常或以编程方式检测文档当前是否打开

捕捉异常有点讨厌,但会起作用。

以编程方式检测是否加载了文档是最好的选择。

这很容易。

  If Globals.ThisAddIn.Application.Documents.Count > 0 then
        'at least one document is opened
  end if

没有比这更容易的了。

您还试图用功能区上的按钮来完成其他事情吗?

于 2011-04-13T17:38:33.687 回答