在 RichTextbox 中更改包含指定字符串的行的颜色

Change color of line containing specified string in RichTextbox

我正在尝试让 RTB 将任何包含 foo 的行显示为红色。到目前为止,这是我尝试过的:

 string foo = "foo";

            if (richTextBox1.Lines.Contains(foo))
            {
                richTextBox1.Select(richTextBox1.Lines.Contains(foo);
                richTextBox1.SelectionColor = Color.Red;                  
            }

有没有更有效的方法来解决这个问题,或者有人能看出我哪里出错了?

您遇到的问题是 Select() 函数

你可以这样做:

string foo = "foo";
int lineNum = 0;
foreach (string line in richTextBox2.Lines)
{
    if (line.Contains(foo))
    {
        richTextBox2.Select(richTextBox2.GetFirstCharIndexFromLine(lineNum), line.Length);
        richTextBox2.SelectionColor = Color.Red;
    }
    lineNum++;
}