我怎样才能将 richTextBox 特定文本的颜色一次涂成黄色,一次涂成红色?

How can i color the richTextBox specific text once in yellow and once in red?

我在表单中使用以下代码向 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 方法中输入什么才能使其工作?

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

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 属性.