【问题标题】:How to have alternating line colors for a Winforms RichTextBox?如何为 Winforms RichTextBox 设置交替的线条颜色?
【发布时间】:2011-05-12 17:32:00
【问题描述】:

看起来像这样的东西:

有没有我可以做的类似线的属性?:

foreach line ...
    line.BackColor = Colors.Gray;

Lines[i] 属性只返回一个字符串。

【问题讨论】:

  • 只需选择文本,直到到达分号。然后将 .SelectionBackColor(或任何相应的属性)设置为 Gray。
  • 谢谢,但它会将整行设置为背景颜色还是直到该行的最后一个字符?因为无论是否为空,我都想要整行。
  • 我认为 RTF 根本做不到。
  • 我在某处读到,可以使此控件透明,并在文本显示在此图像上的位置放置图像。那可能吗?我可以这样做,我只是不知道如何使 RTB 透明。

标签: c# .net winforms richtextbox


【解决方案1】:

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

// 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);

看起来像这样:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    相关资源
    最近更新 更多