C# 4.0 添加内容控件会动态引发异常

C# 4.0 添加内容控件会动态引发异常,c#-4.0,vsto,add-in,office-interop,C# 4.0,Vsto,Add In,Office Interop,我对Word Addin开发相当陌生。幸运的是,我能做几乎所有的事情,但我坚持在一些我认为简单的问题上 我想在选定范围内动态插入纯文本控件。为此,我使用以下方法: currentDocument = application.ActiveDocument; foreach(var field in myFieldsList) { Microsoft.Office.Interop.Word.Range rng = currentDocument.

我对Word Addin开发相当陌生。幸运的是,我能做几乎所有的事情,但我坚持在一些我认为简单的问题上

我想在选定范围内动态插入纯文本控件。为此,我使用以下方法:

    currentDocument = application.ActiveDocument;
    foreach(var field in myFieldsList)
    {      
         Microsoft.Office.Interop.Word.Range rng = currentDocument.ActiveWindow.Selection.Range;
         object oRng = rng;
         var contentControlPlain = application.ActiveDocument.ContentControls.Add(Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlText, ref oRng);
         contentControlPlain.Tag = formField.FormFieldId.ToString();
         contentControlPlain.SetPlaceholderText(null, null, " <" + formField.FormFieldName + "> ");
         contentControlPlain.LockContentControl = (formField.TypeName.Trim() == "Blank");
    }
currentDocument=application.ActiveDocument;
foreach(myFieldsList中的var字段)
{      
Microsoft.Office.Interop.Word.Range rng=currentDocument.ActiveWindow.Selection.Range;
对象oRng=rng;
var contentControlPlain=application.ActiveDocument.ContentControls.Add(Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlText,ref-oRng);
contentControlPlain.Tag=formField.FormFieldId.ToString();
contentControlPlain.SetPlaceholderText(null,null,“”);
contentControlPlain.LockContentControl=(formField.TypeName.Trim()=“空白”);
}
代码似乎工作正常,但当我尝试插入第二个字段时,它抱怨说:

此方法或属性不可用,因为当前选择部分覆盖纯文本内容控件。

我知道addin正在尝试将下一个内容控件插入到先前插入的纯文本控件中。但我试着换了一个范围,却没能修好。 非常感谢您的帮助


谢谢。

添加每个内容控件使用后

Application.Selection.Start = lastControl.Range.End+1

添加每个内容控件后使用

Application.Selection.Start = lastControl.Range.End+1

目前,我通过在添加每个内容控件后调用Range.InsertParagraphAfter()修复了这个问题。但我还是想在一行中插入内容控件,但这样我就在每行中插入了一个控件:(任何建议??目前,我通过在添加每个内容控件后调用Range.InsertParagraphAfter()修复了此问题。但我还是打算在一行中插入内容控件,但这样我在每行中插入一个控件。:(任何建议??