突出显示 RichTextBox1 中的一行,行号 = 一个变量

Highlighting a line in a RichTextBox1, line number = a variable

我有一个变量,假设它 = 5,然后我希望在我的 RichTextBox1 中突出显示行号 5 "blue"。这可能吗?

或者我应该使用类似 ListBox、DataGridView 等的东西。

如果 WordWrap 关闭,这将突出显示 RichTextBox 中给定行中的文本:

void highLightALine(RichTextBox rtb, int line, Color hiLight)
{
    int i1 = rtb.GetFirstCharIndexFromLine(line);
    int i2 = rtb.GetFirstCharIndexFromLine(line + 1);
    if (i2 < 0) i2 = rtb.Text.Length;

    rtb.SelectionStart = i1;
    rtb.SelectionLength = i2 - i1;
    rtb.SelectionBackColor = hiLight;
}

请注意,如果 WordWrap 为真,它仍会突出显示该行,但仅限于它可见的范围。它在下一行的延续将不会改变。

另请注意,只有 Text 可以突出显示。 尾随空 space 无法突出显示 afaik。 Here 是尝试所有者绘制 RTB 子类的示例..