0

我正在使用 .dotm 文件开发 Word 2007 文档级加载项。它是一个文档,主要由文档窗格上的按钮控制,用于创建和销毁文档的某些部分。创建的一些东西是内容控件。

一个这样的按钮是一个切换按钮,它需要删除并重新添加大约 10 个字符和一个内容控件。我的问题是,每当我尝试重新创建内容控件时,Word 都会引发 COMException,并显示消息“命令失败”和错误代码 -2146824090(或 0x800a1066)。

谷歌搜索此错误代码表明这是与使用OpenSaveAs方法与 Word 文档或网络驱动器上的文档交互相关的安全相关异常(请参阅此处此处此处的帖子)。这根本不适合我正在做的事情。

这是我用来删除控件的代码:

LevelControl.LockContentControl = false;
LevelControl.Delete(true);
LevelControl = null; // probably not needed

这是娱乐代码:

DropDownListContentControl LevelControl = this.Controls.AddDropDownListContentControl(r, "SectionLevel");

这是我最初用于创建控件的同一行代码。

4

1 回答 1

0

我的问题的原因是放错了范围对象。我无意中将范围放在另一个内容控件中,该控件仍然包含占位符文本。不幸的是,错误消息没有说明这一点。

要确定您是否犯了同样的错误,请尝试r.Select()在最后调用而不是任何可能导致此异常的操作,并查看光标所在的位置。请确保执行此操作时文档不限于在字段中编辑 ( Review>Protect Document>Restrict Editing and Formatting),否则它可能会在您看到之前自动移动到文档的开头或内容控件。

于 2012-09-28T15:11:09.547 回答