注意:我正在使用Office Word 2007
我需要用组合框,复选框,文本等替换Word文档的特定部分。 我使用正则表达式找到“标签”,然后迭代正则表达式匹配以获取要替换的特定文本。
var range = doc.Content; // where doc is current active word document
var matches = GetRegexMatches();
foreach (var match in matches){
if(range.Find.Execute(match.Value)){ // match.Value equals to the "tag" im searching
range.Collapse();
Word.ContentControl checkbox = range.ContentControls.Add(Word.WdContentControlType.wdContentControlCheckbox);
checkbox.Checked = true;
}
}
这段代码添加了一些奇怪的框(我猜一个ContentControl
对象,但不是类型复选框)。调试它没有帮助,因为它只是停止调试器。
我尝试了另一个类似的stackoverflow线程,但是使用FormField
代替ContentControl
只会添加一个灰色复选框,默认情况下是禁用的,并且以编程方式不可更改。
我做错了什么或者在Office版本中无法做到这一点?或两者兼而有之?
答案 0 :(得分:0)
显然,如果您正在使用Office 2010+,并且您尝试打开的文档已在2010年之前的版本中创建,则会在Compatibility Mode
中打开,从而禁用许多新版本功能,以免破坏文件。这包括组合框,复选框等。除了在新的Office版本中打开文档并将其保存为更新版本之外,没有解决方法。