我确定这是我在这里失踪的愚蠢但是自从我上次广泛使用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;
}
所以有一对一切正常,彩色文字被添加。 随着两个一切正常,添加了不同的颜色文本。 但是,如果使用三对或更多对,我会将整个文本用第一个选择颜色着色,然后使用不同颜色的最后一行。
答案 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);
}