代码之家  ›  专栏  ›  技术社区  ›  Addie

更改Winforms RichTextBox中文本的颜色[重复]

  •  29
  • Addie  · 技术社区  · 16 年前

    这个问题已经有了答案:

    我有一个richtextbox,每次单击表单按钮时都会向它写入一个字符串。每个字符串以字符串“long”或“short”开头,以换行符结尾。每次我添加一个字符串,它都会附加到richtextbox的底部。如果每一行有“长”字,我想把它涂成红色;如果每一行以“短”字开头,我想把它涂成蓝色。我该怎么做?

    2 回复  |  直到 10 年前
        1
  •  46
  •   itsmatt    10 年前

    当然可以,所以您可以使用selectionstart、selectionlength和selectioncolor属性来完成这项工作。它工作得很好。

    退房 this page 关于这些财产的信息。

    通过将selectionstart属性设置为当前长度,获取要追加的字符串的长度,设置selectionlength,然后根据需要设置selectioncolor,可以知道richtextbox文本的长度,并在执行时为其上色。冲洗并重复添加的每个字符串。

    int length = richTextBox.TextLength;  // at end of text
    richTextBox.AppendText(mystring);
    richTextBox.SelectionStart = length;
    richTextBox.SelectionLength = mystring.Length;
    richTextBox.SelectionColor = Color.Red;
    

    差不多吧。这就是我记得它工作的方式。

        2
  •  35
  •   bluish dmajkic    13 年前

    我只是在写一个程序。我在做类似于“itsmatt”的事情,但我觉得简单了一点。你可以设置 Selectioncolor 从那时起 RichTextBox 会是那种颜色直到你换成别的颜色。如果你在测试每一条线路,这看起来都很好,而且很容易。

    if(myString == "Long") 
    { 
      richTextBox.SelectionColor = Color.Red; 
    }
    else
    {
      richTextBox.SelectionColor = Color.Green
    }
    richTextBox.AppendText(myString);
    
    推荐文章