【发布时间】:2014-07-07 05:21:20
【问题描述】:
richTextBox1.Select(0, richTextBox1.Lines[0].Length);
richTextBox1.SelectionColor = Color.Red;
第一次只有第 0 行,richTextBox1 中的第一行是红色的。 但是我每 X 秒在一个计时器滴答事件中调用此行,并且在下一次它将richTextBox1 中的所有文本着色为红色。
我如何使它只在第一行保持红色着色? (行[0])
编辑
这是一个方法中的完整代码,我从计时器滴答事件中每隔 x 秒调用一次该方法:
private void CombindedStringFix()
{
scrollerList = new List<string>(TextExtractor.newTextWithoutLinks);
scrollerText = string.Join(Environment.NewLine, scrollerList);
combindedString = string.Join(Environment.NewLine, newText);
scroller1.TextToScroll = scrollerText;
richTextBox1.Text = combindedString.TrimStart();
richTextBox1.Refresh();
string[] rlines = richTextBox1.Lines;
richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = rlines[0].Length;
richTextBox1.SelectionColor = Color.Red;
richTextBox1.Select(rlines[0].Length, rlines[1].Length + 1);
richTextBox1.SelectionColor = Color.Green;
}
第一次将顶部的第一行染成红色,第二个顶部的行染成绿色。 但在下一个计时器迭代中,它会将richTextBox1 中的所有文本都染成红色。
【问题讨论】:
-
这对我来说很好。
-
对我来说也很好用。你在干什么。您是否每次都设置整个文本而不是使用 AppendText?
-
P.K 更新了我的问题。 '不确定这是否是问题,但这是我每 x 秒从计时器滴答事件调用的方法,也是我想为线条着色的地方。现在的代码是一样的,如果它像之前一样,它第一次将线条着色为红色和绿色,但在下一个计时器滴答事件中,它会将所有文本着色为红色。
-
[如何在richtextbox中使用多色?][1] [1]:stackoverflow.com/questions/13220856/…