技术太菜,目前 RichTextBox 实现高亮,只能用                                 RichTextBox.SelectionColor = Color.Red;
                                RichTextBox.AppendText("高亮文本");
                                RichTextBox.Select(RichTextBox.TextLength, 0);
                                RichTextBox.ScrollToCaret();//获得焦点目前有将近 1000 字(非固定的动态的文本)的高亮文本,里面有各种颜色,如果使用上面的方法效率太低.能否 RichTextBox 直接读取这段高亮文本,或者其他方法,也就是RichTextBox一次性的,读取这段高亮文本,然后显示出来?

解决方案 »

  1.   

    我建议你用现成的控件。ICSharpCode.TextEditor和FastColoredTextBox这两个都支持语法高亮,而且都开源,你可以直接使用。自己做不是那么容易的。上面我提到的2个控件,一个是基于行,一个是基于字符,都是用GDI+绘制的,比较复杂。供参考。
      

  2.   

    用richtextbox读取出来让后将相应文本高亮就可以了
      

  3.   

    非常感谢2楼,
    回3楼由于是动态的文本使用 RichTextBox 载入,而后高亮,然后保存 RTF ,并不实际,因为文本不是固定的,是根据情况生成的文本如果不使用第三方控件,只能 动态的生成 RTF 格式的文本,追加到 RichTextBox.rtf 中不知什么正确.