C#winforms RichTextBox着色

时间:2017-03-29 19:05:48

标签: c# winforms

我确定这是我在这里失踪的愚蠢但是自从我上次广泛使用winforms以来已经过去几年了,我无法理解这一点。 我想写每个不同颜色的richTextBox - 像这样:

    private void MainForm_Load(object sender, EventArgs e)
    {
        if (Legend != null)
        {
            foreach (KeyValuePair<string, Color> kvp in Legend)
            {
                writeColor(kvp.Key, richTextBoxLegend, kvp.Value, true);
            }
        }
    }
    private void writeColor(string text, RichTextBox rtb, Color c, bool newLine = false)
    {
        if (newLine && !String.IsNullOrEmpty(rtb.Text)) rtb.Text += Environment.NewLine;
        rtb.Text += text;

        rtb.Select(rtb.Text.Length - text.Length, text.Length);
        rtb.SelectionBackColor = c;
    }

所以有一对一切正常,彩色文字被添加。 随着两个一切正常,添加了不同的颜色文本。 但是,如果使用三对或更多对,我会将整个文本用第一个选择颜色着色,然后使用不同颜色的最后一行。

1 个答案:

答案 0 :(得分:0)

如果在添加文本之前设置颜色,可能效果会更好:

private void writeColor(string text, RichTextBox rtb, Color c, bool newLine = false) {
  if (newLine) rtb.AppendText(Environment.NewLine);
  rtb.SelectionBackColor = c;
  rtb.AppendText(text);
}