如何为Winforms RichTextBox创建交替的线条颜色?

Joa*_*nge 5 .net c# richtextbox winforms

看起来像这样的东西:

在此输入图像描述

我可以做一个像线路一样的房产吗?:

foreach line ...
    line.BackColor = Colors.Gray;
Run Code Online (Sandbox Code Playgroud)

Lines[i] property只返回一个字符串.

SwD*_*n81 4

一个不太好的解决方案是在每行上附加额外的文本,然后突出显示全文。所以像这样:

// Update lines to have extra length past length of window
string[] linez = new string[richTextBox1.Lines.Length];
for (int i = 0; i < richTextBox1.Lines.Length; i++)
{
   linez[i] = richTextBox1.Lines[i] + new string(' ', 1000);
}
richTextBox1.Clear();
richTextBox1.Lines = linez;

for(int i = 0; i < richTextBox1.Lines.Length; i++)
{
   int first = richTextBox1.GetFirstCharIndexFromLine(i);
   richTextBox1.Select(first, richTextBox1.Lines[i].Length);
   richTextBox1.SelectionBackColor = (i % 2 == 0) ? Color.Red : Color.White;
   richTextBox1.SelectionColor = (i % 2 == 0) ? Color.Black : Color.Green;
}
richTextBox1.Select(0,0);
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

带彩色线条的 RichTextBox