1

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

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

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

4

2 回答 2

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);
于 2013-04-01T04:20:47.980 回答
0

试试这个 -

if (textR.Contains("[INFO]"))
{
    txtboxServerOutput.SelectionColor = Color.Aqua;
}
txtboxServerOutput.SelectedText = textR + "\n";
于 2013-03-26T13:44:53.173 回答