是否可以加快RichtextBox中线条的着色?
我有日志文件,其中有错误的行必须显示为彩色。为此,我使用了RichttextBox
控件,其性能非常差。
我已经这样做了加快速度:
RichTextbox50.Lines.Count()
之后我需要 11秒才能为之前40秒的100行2000行 instad着色。
还有其他几个问题,比如上面提到的关于加速RichtextBox或着色的Richedit50W。但没有答案有助于加快着色。
我可以做些什么来加快速度吗?
private void ColorizeLog(List<int> ErrorLines)
{
// The List "ErrorLines" is filled with the wanted line numbers
// and was build before filling the RichtextBow with the log data
// Counting the lines before the for..next is 50% faster than:
// for (int lineNo = 0; lineNo < this.richTextbox50_Log.Lines.Count(); lineNo++)
// in combination the other usage of "countLines" deeper in the code
int countLines = this.richTextbox50_Log.Lines.Count();
for (int lineNo = 0; lineNo < countLines; lineNo++)
{
if (ErrorLines.IndexOf(lineNo) >= 0)
{
int pos1 = this.richTextbox50_Log.GetFirstCharIndexFromLine(lineNo);
int pos2 = lineNo < countLines - 1 ?
this.richTextbox50_Log.GetFirstCharIndexFromLine(lineNo + 1) - 1 :
this.richTextbox50_Log.Text.Length;
this.richTextbox50_Log.Select(pos1, pos2 - pos1);
this.richTextbox50_Log.SelectionColor = Color.White;
this.richTextbox50_Log.SelectionBackColor = Color.Red;
}
}
答案 0 :(得分:1)
对于我的一个项目,我觉得需要一个带语法高亮的文本编辑器。起初,我使用了从RichTextBox继承的组件,但是当它用于大量文本时,我发现RichTextBox非常缓慢地突出显示大量彩色片段(从200或更多)。当这种突出显示必须以动态的方式进行时,它会引起严重的问题。
http://www.codeproject.com/Articles/161871/Fast-Colored-TextBox-for-syntax-highlighting
我认为RichTextBox有时只是一个b *** ......