在Word 2007中重新创建控件时出现错误代码800A1066

时间:2012-09-28 15:11:10

标签: c# vsto word-2007

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

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

Google搜索此错误代码表明这是与使用OpenSaveAs方法与Word文档或网络驱动器上的文档进行交互相关的安全相关异常(请参阅帖子{{3 }},herehere)。这根本不符合我的要求。

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

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

以下是娱乐代码:

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

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

1 个答案:

答案 0 :(得分:0)

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

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