Xn.U 2017-09-03 03:37 采纳率: 100%
浏览 5061
已采纳

C#中的RichTextBox的内容刷新问题

据我所知,类似QQ、绝大多数的聊天程序的聊天界面的聊天记录显示框都采用了这样的策略:自动接收最新消息并且focus最后一行,也就是将最新消息加到原本最后一行的后面,同时将滚动条滚动到最后一行来显示聊天历史。我最近试着编写了一个类似于QQ的即时通讯程序(属于自学之后的一次小实践吧),聊天记录显示框用的RichTextBox控件(以下简称RTB)。刚开始做这个都的时候只是为了发送文本消息,后来想让其发送图片,方案为RTB+ClipBoard,但是在消息刷新的时候遇到了一个问题。
先说一下刷新消息的方式:
richTextBox1.SelectLenth=richTextBox.TextLengh;
richTextBox1.ScrollToCaret();
原来只显示文本的时候RTB可以瞬间刷新,直接跳转到最后一行;后来加入了图片之后,当RTB中的内容达到一定长度时(出现滚动条),再发图片就会出现刷新延迟。也就是说,接收消息或者发送消息的时候,我得让RTB在添加完了内容之后,滚动条直接跳到最后一行,可是现实是这样的:滚动条从第一行滚动到最后一行,而且速度还挺慢。(这里补充下,虽然本人电脑配置不高,但这应该不是电脑配置问题,因为QQ等类似软件没有出现过这种情况。而且,若是第一次加载则不存在这样的现象)
这里我想问下,大家有没有遇到过类似的情况?
还请大神指点指点初入此门的本渣,本渣以前都是百度来百度去的也没怎么问过人,这次是第一次在CSDN上发帖,故C币也不多(大多拿去下载资源了),故给的C币也多不到哪去,为的只是弄清一个缠绕我很久的问题,同时也能方便大家借鉴学习,共勉!谢谢了各位!

  • 写回答

5条回答

  • Xn.U 2017-09-03 10:46
    关注

    找到一个解决方案,之前没有将上面两行代码写在事件中,可能这就是原因。CSDN的APP上搜索到的http://m.blog.csdn.net/kongjibo/article/details/51595060

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable