是否可以在多行中添加内容控制?
目前,我正在像这样添加内容控件:
bm = doc.Bookmarks.Add("bookmark", app.Selection.Range);
ContentControl cc = doc.ContentControls.Add(WdContentControlType.wdContentControlRichText, bm.Range);
cc.MultiLine = true;
cc.Tag = _BOOKMARK;
但是当我在单词中选择/标记多行并尝试为其添加内容控件时,总是会收到ComException。是否可以这样做?
答案 0 :(得分:1)
据我所知,在文档中已有的文本行周围插入内容控件是行不通的。
相反,将多行分配给Range
对象。插入内容控件,然后使用Range.FormattedText
属性将这些行“复制”到其中。向后删除Range
。像这样的东西(当我在移动设备上时,在我的头顶上键入)
Word.Range rngSel = app.Selection.Range;
bm = doc.Bookmarks.Add("bookmark", rngSel);
Word.Range rngCC = rngSel.Duplicate;
//Insert the content control immediately after the selection, for example
rngCC.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
ContentControl cc = doc.ContentControls.Add(WdContentControlType.wdContentControlRichText, rngCC);
cc.MultiLine = true;
cc.Tag = _BOOKMARK;
cc.Range.FormattedText = rngSel.FormattedText;
RngSel.Delete();