Ваш метод в порядке, однако расширенное текстовое поле выбирается только один раз, вам нужно добавить 1.
Сделайте, как показано ниже:
private int CompareRichTextContents (цель RichTextBox, RichTextBox dest) {intсчетчик = 0;string [] targetLines = target.Lines;string [] destLine = dest.Lines;Результат списка = targetLines.Except (destLine) .ToList ();foreach (строка str в результате) {
int lineIndex = Array.IndexOf(targetLines, str);
int lineCount = 0;
for (int index = 0; index < lineIndex; index++)
{
lineCount += targetLines[index].Length+1;
}
target.SelectionBackColor = Color.Yellow;
target.SelectionColor = Color.Black;
// target.Select(lineCount, str.Length);
target.SelectionStart = lineCount;
target.SelectionLength = str.Length;
counter++;
}
return counter;
}
Теперь в событии нажатия кнопки вызовите его столько раз, сколько выбрано.Хотя это требует ненужного времени (пишет, не задумываясь), но каждый раз выбирает следующее.
private void button1_Click(object sender, EventArgs e)
{
int counter= CompareRichTextContents(this.richTextBox1Body, this.richTextBox2Body);
for (int i = 0; i < counter; i++)
CompareRichTextContents(this.richTextBox1Body, this.richTextBox2Body);
}