【发布时间】:2014-12-07 09:22:45
【问题描述】:
我在这里使用这个控件 http://www.codeproject.com/Articles/11819/Integrating-Microsoft-Word-in-your-NET-application
这个控件的好处是,它使用 Word 互操作,因此我可以使用 Word Object Model 与 Application、Document、Selection、Range 和 Bookmark 对象来操作 Word 文档。
我正在尝试在文档中搜索单词;所有用双引号括起来的单词。我为此使用 RegEx,只是通过在 Document.Application.ActiveDocument.Content.Text 中取出文本并使用这些提取的单词,我的应用程序将在当前文档中查找不匹配的单词在相同的字符大小写中,例如在我的集合中,我有“企业名称”,应用程序将在文档中查找可能的匹配项,例如:企业名称、企业名称、使用 RegEx 的企业名称。我需要正则表达式,因为我需要获取单词的索引,因此当用户单击显示可能匹配项的列表时,它将使用
自动在文档中突出显示document.Application.Selection.SetRange(index, index);
document.Application.Selection.Find.ClearFormatting();
document.Application.Selection.Find.Execute(s_word, MatchCase: true);
这里的问题是,有时单词没有突出显示,因为 SetRange 位于错误的索引位置,因为我使用 RegEx 获取 Match.Index
我的问题是,是否有任何替代方法来寻找可能的匹配项,我也可以拥有索引,因此当用户在列表中单击该单词时,它会毫无问题地突出显示该单词?
【问题讨论】: