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

C# 在Word 2007中重新创建控件时出现错误代码800A1066,c#,vsto,word-2007,C#,Vsto,Word 2007,我正在使用.dotm文件开发Word 2007文档级外接程序。它是一个主要由文档窗格上的按钮控制的文档,用于创建和销毁文档的某些部分。创建的一些内容是内容控件 其中一个按钮是切换按钮,需要删除并重新添加大约10个字符和一个内容控件。我的问题是,每当我尝试重新创建内容控件时,Word都会抛出一个COMException,消息为“Command Failed”,错误代码为-2146824090(或0x800a1066) 谷歌搜索此错误代码表明这是一个与安全相关的异常,与使用Open或SaveAs方法

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

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

谷歌搜索此错误代码表明这是一个与安全相关的异常,与使用
Open
SaveAs
方法与Word文档或网络驱动器上的文档交互有关(请参阅文章和)。这根本不符合我正在做的事情

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

LevelControl.LockContentControl = false;
LevelControl.Delete(true);
LevelControl = null; // probably not needed
以下是娱乐代码:

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

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

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

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