更改WinForms RichTextBox中的文本颜色

Add*_*die 30 c# richtextbox winforms

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

its*_*att 46

当然,您可以使用SelectionStart,SelectionLength和SelectionColor属性来完成此任务.它运作得很好.

有关这些属性的信息,请查看此页面.

您可以通过将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;
Run Code Online (Sandbox Code Playgroud)

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


DTo*_*own 36

我只是在我写的一个程序中这样做.我正在做像@itsmatt这样的事情,但我感觉有点简单.你可以设置Selectioncolor和从那一点开始就是RichTextBox那种颜色,直到你把它改成别的东西.如果你正在测试每一行,这似乎很好,很容易.

if(myString == "Long") 
{ 
  richTextBox.SelectionColor = Color.Red; 
}
else
{
  richTextBox.SelectionColor = Color.Green
}
richTextBox.AppendText(myString);
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这种方法.感觉比附加文本然后返回并使其成为不同颜色更有效,而且您不必担心选择开始/长度. (7认同)
  • +1因为这比接受的答案更简单,更优雅. (4认同)