在我的程序中,我使用Find.Execute
搜索关键字的所有单词形式并突出显示它们。例如,如果我的源文档包含“执行”和“性能”,Find.Execute(...matchAllWordForms=true...)
将找到这两个单词,但它只会突出显示性能的“执行”部分。
如何让MSWord突出显示整个单词? range.Text
被Find.Execute
更改为“执行”,所以我无法重复。我尝试执行Range.Select()
然后迭代Selection.End
,但范围与原始文档不匹配。
非常感谢任何帮助!
答案 0 :(得分:0)
嗯,我觉得有点蠢:
我尝试使用Selection.Extend
并完全错过了Selection.Expand
选项。对于后来遇到这种情况的人来说:
range.Select(); // The range after Find.Execute
wordApp.Selection.Expand(Word.WdUnits.wdWord); // may have to trim off excess whitespace
Word.Range highlightRange = document.Range(wordApp.Selection.Start, wordApp.Selection.End);
wordApp.Selection.Shading.BackgroundPatternColor = (Word.WdColor)System.Drawing.ColorTranslator.ToOle(extractedColor);
请注意,我使用Shading作为我的荧光笔(因此我可以使用System.Drawing.Color.FromARGB(Alpha,R,G,B)
而不是默认的15种颜色创建自定义颜色。)