如果包含X,则在富文本框中更改字符串颜色

时间:2013-03-17 04:02:20

标签: c# windows winforms richtextbox

我有一个Jar文件,它提供输出和一个写入输出的富文本框。 Jar文件提供的每个字符串都是富文本框中的新行。如果该行包含某些关键字,我想要改变它的颜色。我尝试了以下方法:

if (textR.Contains("[INFO]"))
{
    //txtboxServerOutput.Text += textR + "\n";
    txtboxServerOutput.SelectedText = textR;
    txtboxServerOutput.SelectionColor = Color.Aqua;
}
else
{
    txtboxServerOutput.Text += textR + "\n";
}

这导致混乱的输出。富文本框已着色包含“[INFO]”的一些文本,但不是全部,并且所有内容都是一行。我怎样才能解决这个问题?

2 个答案:

答案 0 :(得分:3)

我最终为AppendText创建了一个重载:

// Adds new overload for AppendText for rich textboxes
public static class RichTextBoxExtensions
{
        public static void AppendText(this RichTextBox txtbox, string text, Color color)
        {
            txtbox.SelectionStart = txtbox.TextLength;
            txtbox.SelectionLength = 0;

            txtbox.SelectionColor = color;
            txtbox.AppendText(text);
            txtbox.SelectionColor = txtbox.ForeColor;
        }
};

所以现在我可以这样做:

richTextBox.AppendText("some random text", Color.Blue);

答案 1 :(得分:0)

试试这个 -

if (textR.Contains("[INFO]"))
{
    txtboxServerOutput.SelectionColor = Color.Aqua;
}
txtboxServerOutput.SelectedText = textR + "\n";