Метод RichTextBox.Find () не может выполнять поиск в нескольких строках Text
.
Если вы собираетесь искать и выбирать содержимое разных строк, вы можете разбить строки на разные подстроки. Таким образом, вы сможете выбрать несколько строк, даже если они не являются смежными:
Примечание
RichTextBox
преобразует \r\n
(Environment.Newline
в Windows) в \n
.
Например:
richTextBox1.Text = "Line 1\nLine 2\nLine 3\nLine 4\nLine 5";
string[] searchLines = new[] {"Line 2", "Line 3"};
using (Font fnt = new Font("Verdana", 8F, FontStyle.Italic, GraphicsUnit.Point))
{
foreach (string line in searchLines)
{
int my1stPosition = richTextBox1.Find(line);
if (my1stPosition > 0)
{
richTextBox1.SelectionStart = my1stPosition;
richTextBox1.SelectionLength = line.Length;
richTextBox1.SelectionFont = fnt;
richTextBox1.SelectionColor = Color.CadetBlue;
}
}
}
Если вы все еще хотите найти всю строку, используйте IndexOf
в свойстве RichTextBox.Text
:
string searchLines = $"Line 2\nLine 3";
(...)
int my1stPosition = richTextBox1.Text.IndexOf(searchLines);