更改WinForms RichTextBox中的文本颜色

时间:2010-03-27 00:42:36

标签: c# winforms richtextbox

我有一个RichTextBox,每次单击“表单”按钮时都会写一个字符串。每个字符串以字符串“Long”或“Short”开头,以换行符结束。每次添加字符串时,它都会附加到RichTextBox的底部。如果它是“长”的话,我想把每一行的颜色涂成红色,如果它以“短”的形式开始,我想把它变成蓝色。我怎么能这样做?

2 个答案:

答案 0 :(得分:46)

当然,您可以使用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;

这样的事情。这就是我记得它的工作方式。

答案 1 :(得分:36)

我只是在我写的一个程序中这样做。我正在做像@itsmatt这样的事情,但我感觉有点简单。您可以设置SelectioncolorRichTextBox上的那个点将是那种颜色,直到您将其更改为其他颜色。如果你正在测试每一行,这似乎很容易,而且很容易。

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