本帖最后由 cs_dn_net 于 2014-09-12 14:29:45 编辑

解决方案 »

  1.   


    快速取得文本及长度的问题解决了。还有个问题:当用RichTextBox打开一个大文件后,按Ctrl+End跳到文本最后时,虽然马上能看到,但是程序会失去响应很长一段时间,远比用Len(RichTextBox1.Text)计算长度所花的时间长。
    这有什么办法解决吗?
      

  2.   

    用RichTextBox打开超长文本本身就是不明智的举动,何况RichTextBox还是格式文本!!!用webbrowser测试系统中不带@的字体(大概290中左右),设置font-family为对应的字体,类似于
    <font style='font-family:宋体'>宋体</font>
    结果webbrowser的反映变得极其迟缓!
      

  3.   


    快速取得文本及长度的问题解决了。还有个问题:当用RichTextBox打开一个大文件后,按Ctrl+End跳到文本最后时,虽然马上能看到,但是程序会失去响应很长一段时间,远比用Len(RichTextBox1.Text)计算长度所花的时间长。
    这有什么办法解决吗?
    带格式的显示是非常花时间的。
    就像看小说一样,全文阅读总是载入很慢的,分章节就好多了。
    想要快,就得把大文件分成小文件,直接载入大文件是不行的。
      

  4.   

    改成分页处理的机制。还有一种变通的方法。用 Frame 数组控件,内置多个 RichTextBox。所有的与页跳转相关的操作都拦截,并通过设置相应的 Frame 元素可见来实现。或者,做 n + 1 个 RichTextBox,其中一个可见的用于显示,其他的用于存储文本。显示控件的大小最好适应窗口大小,也就是不需要滚动。可以做一个虚拟的滚动条用来换页。跳页时把相应元素的内容复制到显示 Box 中。如果复制量大,还需要在显示时先使目标控件不可见,复制完成后再恢复可见。
      

  5.   

    非常感谢各位的建议!
    我现在已经改用TextBox来解决了。
    用TextBox拖动滚动条的时候响应还是很快的。
    就是文件比较大的时候,改变比较前面的部分文本时,反应就慢了。