我正在使用 C#.Net 开发一个 Windows 窗体应用程序。在我的部分代码中,我定义了一个记录系统事件的函数。这是这个函数的主体:
richTextBoxLog.Text += "-";
richTextBoxLog.Text += some logs and strings ...;
richTextBoxLog.Text += "." + new string(' ', 1000) + Environment.NewLine;
richTextBoxLog.Select(richTextBoxLog.GetFirstCharIndexFromLine(logCounter), richTextBoxLog.Lines[logCounter].Length);
richTextBoxLog.SelectionBackColor = (logCounter % 2 == 0) ? Color.LightBlue: Color.LightGray;
logCounter++;
richTextBoxLog.ScrollToCaret();
的初始值logCounter
为零(第一个事件的行指的是logCounter=0
)。对于奇数行,背景颜色应该是Color.LightGray
,对于偶数行,它应该是Color.LightBlue
。但是,正如您在下面看到的那样,它不会正确更改背面颜色。
每次调用此函数(以添加新文本行)时,richTextBoxLog.Select
都会根据新行的开始和结束索引更新区域。但是,当向文本框中添加偶数行时,所有先前行的背景颜色都会变为蓝色(偶数颜色)。
我提前感谢您的帮助。