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

时间:2016-08-22 17:26:42

标签: c# winforms richtextbox

我有一个变量,让我们说它= 5,然后我想要突出显示第5行"蓝色"在我的RichTextBox1中。这有可能吗?

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

enter image description here

1 个答案:

答案 0 :(得分:0)

如果RichTextBox关闭,则会突出WordWrap中给定行中的文字:

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无法突出显示尾随空格 afaik。 Here是尝试所有者绘制RTB子类的示例..