如何在 richTextBox C# 中绘制特定行?
How do you paint a specific line in a richTextBox C#?
在 RichTextBox
中给定此文本:
str1
str2
str3
我不知道所有的长度。
我怎样才能用绿色画第一行,用蓝色画第三行?
我读了一些 SelectionColor
但我不希望该行被标记。
还有别的办法吗?或者也许那样(使用 SelectionColor
),但你能解释一下我该怎么做吗?
尝试以下方法之一:
这样赋值:
richTextBox1.Find("str1");
richTextBox1.SelectionColor = Color.Green;
richTextBox1.Find("str3");
richTextBox1.SelectionColor = Color.Blue;
另一种方式是这样的:
richTextBox1.Select(0, 3);//Select text within 0 and 3
richTextBox1.SelectionColor = Color.Green;
richTextBox1.Select(9, 12);
richTextBox1.SelectionColor = Color.Blue;
编辑: 要隐藏选择,请将此行添加到代码末尾:
richTextBox1.Select(0, 0);
I don't know the length of all of them.
这是另一种方法:
private void button1_Click(object sender, EventArgs e)
{
ColorLine(0, Color.Green);
ColorLine(2, Color.Blue);
}
private void ColorLine(int line, Color clr)
{
int index = richTextBox1.GetFirstCharIndexFromLine(line);
int length = richTextBox1.Lines[line].Length;
richTextBox1.Select(index, length);
richTextBox1.SelectionColor = clr;
richTextBox1.Select(0, 0);
}
在 RichTextBox
中给定此文本:
str1
str2
str3
我不知道所有的长度。
我怎样才能用绿色画第一行,用蓝色画第三行?
我读了一些 SelectionColor
但我不希望该行被标记。
还有别的办法吗?或者也许那样(使用 SelectionColor
),但你能解释一下我该怎么做吗?
尝试以下方法之一:
这样赋值:
richTextBox1.Find("str1"); richTextBox1.SelectionColor = Color.Green; richTextBox1.Find("str3"); richTextBox1.SelectionColor = Color.Blue;
另一种方式是这样的:
richTextBox1.Select(0, 3);//Select text within 0 and 3 richTextBox1.SelectionColor = Color.Green; richTextBox1.Select(9, 12); richTextBox1.SelectionColor = Color.Blue;
编辑: 要隐藏选择,请将此行添加到代码末尾:
richTextBox1.Select(0, 0);
I don't know the length of all of them.
这是另一种方法:
private void button1_Click(object sender, EventArgs e)
{
ColorLine(0, Color.Green);
ColorLine(2, Color.Blue);
}
private void ColorLine(int line, Color clr)
{
int index = richTextBox1.GetFirstCharIndexFromLine(line);
int length = richTextBox1.Lines[line].Length;
richTextBox1.Select(index, length);
richTextBox1.SelectionColor = clr;
richTextBox1.Select(0, 0);
}