是否可以在多行上添加内容控制?
目前我正在添加这样的内容控件:
bm = doc.Bookmarks.Add("bookmark", app.Selection.Range);
ContentControl cc = doc.ContentControls.Add(WdContentControlType.wdContentControlRichText, bm.Range);
cc.MultiLine = true;
cc.Tag = _BOOKMARK;
但是当我在 Word 中选择/标记多行并尝试为它们添加内容控件时,我总是收到 ComException。是否允许或可能这样做?
最佳答案
据我所知,在文档中已有的文本行“周围”插入内容控件是行不通的。
相反,将多行分配给 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();
关于c# - VSTO Word 内容控制中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54023536/