我正在使用.dotm文件处理Word 2007文档级加载项。它是一个主要由文档窗格上的按钮控制的文档,用于创建和销毁文档的某些部分。创建的一些内容是内容控件。
一个这样的按钮是切换,需要删除并重新添加大约10个字符和内容控件。我的问题是,每当我尝试重新创建内容控件时,Word都会抛出一个带有“命令失败”消息的COMException,错误代码为-2146824090(或0x800a1066)。
Google搜索此错误代码表明这是与使用Open
或SaveAs
方法与Word文档或网络驱动器上的文档进行交互相关的安全相关异常(请参阅帖子{{3 }},here和here)。这根本不符合我的要求。
以下是我用来删除控件的代码:
LevelControl.LockContentControl = false;
LevelControl.Delete(true);
LevelControl = null; // probably not needed
以下是娱乐代码:
DropDownListContentControl LevelControl = this.Controls.AddDropDownListContentControl(r, "SectionLevel");
这与我最初用于创建控件的代码行相同。
答案 0 :(得分:0)
我的问题的原因是错位的范围对象。我无意中将范围放在另一个内容控件中,该控件仍然包含占位符文本。不幸的是,错误信息没有说明这一点。
要确定您是否犯了同样的错误,请尝试在最后调用r.Select()
,而不是导致此异常的任何操作,并查看光标的放置位置。执行此操作时,请确保文档不限于在字段中进行编辑(Review>Protect Document>Restrict Editing and Formatting
),否则它可能会自动移动到文档的开头或内容控件中,然后才能看到它。