我如何为richTextBox特定文本着色一次为黄色,一次为红色?

时间:2016-07-07 01:05:43

标签: c# .net winforms richtextbox

我在表单中有以下代码,可以向RichTextBox添加文字。

public void SetText(string text)
{
    richTextBox2.Text = text;
    SetRichTextBoxColors(true);
}

private void SetRichTextBoxColors(bool yellow)
{
    if (yellow)
    {
        // color text in red
    }
    else
    {
        // color text in yellow
    }
}

每个按钮点击SetText获取新文字并将其添加到richTextbox2。 我希望第一次添加的文字是黄色的,然后下一次是红色再黄色再红色...

我做了一个新表格:

private void button1_Click(object sender, EventArgs e)
{
    _form1.SetText(textBox1.Text);
}

我应该在SetRichTextBoxColors方法中使用什么才能使其正常工作?

1 个答案:

答案 0 :(得分:2)

您可以在表单级别使用标志来确定是否应使用黄色。然后在方法中,检查标志,决定使用哪种颜色,然后添加彩色文本并反转标志:

bool yellow = true;
public void AddText(string text)
{
    richTextBox1.SelectionStart = richTextBox1.Text.Length;
    richTextBox1.SelectionLength = 0; ;
    richTextBox1.SelectionColor = yellow ? Color.Yellow : Color.Red;
    richTextBox1.SelectedText = text;
    yellow = !yellow;
}

注意

  • 要替换整个内容,您可以为Text属性赋值。
  • 要附加文字,您可以使用AppendText方法。
  • 要为整个内容使用单一颜色,您可以为ForeColor属性指定颜色。
  • 要在RichTextBox的任何索引处插入彩色文字,您可以将SelectionStart设置为指定的索引,将SelectionLength设置为0,将SelectionColor设置为指定的颜色然后将给定的文本分配给SelectionText属性。