dun*_*lli 6 c# highlighting richtextbox winforms
我有一个很大的偏移列表,我需要在我的RichTextBox中突出显示.然而,这个过程耗时太长.我使用以下代码:
foreach (int offset in offsets)
{
richTextBox.Select(offset, searchString.Length);
richTextBox.SelectionBackColor = Color.Yellow;
}
Run Code Online (Sandbox Code Playgroud)
有更有效的方法吗?
更新:
尝试使用此方法,但它不突出显示任何内容:
richTextBox.SelectionBackColor = Color.Yellow;
foreach (int offset in offsets)
{
richTextBox.Select(offset, searchString.Length);
}
Run Code Online (Sandbox Code Playgroud)
如果在循环之外设置 SelectionBackColor 有什么区别吗?
使用 Reflector 查看 RichTextBox 会发现,每次设置颜色时都会向控件发送 WindowMessage。在大量偏移的情况下,这可能会导致一次又一次地突出显示已经突出显示的单词,从而导致 O(n^2) 行为。
| 归档时间: |
|
| 查看次数: |
1752 次 |
| 最近记录: |