Я использую следующий код для поиска некоторых строк в моем документе:
Application application = Addin.Application;
Document document = application.ActiveDocument;
Range rng = document.Content;
rng.Find.ClearFormatting();
rng.Find.Forward = true;
rng.Find.Text = findText;
while (rng.Find.Execute() && rng.Find.Found)
{
//here: rng.Text == findText
//however rng.Find.HitHighlight(findText, WdColor.wdColorAqua);
//highlights all occurrences in the document, not in the current range
}
в качестве комментариев в состоянии кода, я ожидаю, что rng.Find.HitHighlight(findText, WdColor.wdColorAqua);
будет работать только в текущем диапазоне, но вместо этогоон выполняется для всего документа.
Интересно, что если я начну с другого диапазона, это сработает так, как я ожидаю ... т.е.
Range rng = document.Content.Paragraphs.First.Range;
rng.Find.HitHighlight("video", WdColor.wdColorAqua);
будет только HitHighlight
findText
в первом абзаце.
Это противоречиво ... Любые идеи о том, как выполнить HitHighlight
только в диапазоне, выбранном с помощью Find
?
ПРИМЕЧАНИЕ: Я попробовал это в надстройке NetOffice, и у меня такое же поведение.