据我所知,类似QQ、绝大多数的聊天程序的聊天界面的聊天记录显示框都采用了这样的策略:自动接收最新消息并且focus最后一行,也就是将最新消息加到原本最后一行的后面,同时将滚动条滚动到最后一行来显示聊天历史。我最近试着编写了一个类似于QQ的即时通讯程序(属于自学之后的一次小实践吧),聊天记录显示框用的RichTextBox控件(以下简称RTB)。刚开始做这个都的时候只是为了发送文本消息,后来想让其发送图片,方案为RTB+ClipBoard,但是在消息刷新的时候遇到了一个问题。
先说一下刷新消息的方式:
richTextBox1.SelectLenth=richTextBox.TextLengh;
richTextBox1.ScrollToCaret();
原来只显示文本的时候RTB可以瞬间刷新,直接跳转到最后一行;后来加入了图片之后,当RTB中的内容达到一定长度时(出现滚动条),再发图片就会出现刷新延迟。也就是说,接收消息或者发送消息的时候,我得让RTB在添加完了内容之后,滚动条直接跳到最后一行,可是现实是这样的:滚动条从第一行滚动到最后一行,而且速度还挺慢。(这里补充下,虽然本人电脑配置不高,但这应该不是电脑配置问题,因为QQ等类似软件没有出现过这种情况。而且,若是第一次加载则不存在这样的现象)
这里我想问下,大家有没有遇到过类似的情况?
还请大神指点指点初入此门的本渣,本渣以前都是百度来百度去的也没怎么问过人,这次是第一次在CSDN上发帖,故C币也不多(大多拿去下载资源了),故给的C币也多不到哪去,为的只是弄清一个缠绕我很久的问题,同时也能方便大家借鉴学习,共勉!谢谢了各位!
C#中的RichTextBox的内容刷新问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- Xn.U 2017-09-03 10:46关注
找到一个解决方案,之前没有将上面两行代码写在事件中,可能这就是原因。CSDN的APP上搜索到的http://m.blog.csdn.net/kongjibo/article/details/51595060
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 (关键词-聊天软件)
- ¥15 求大家看看这个编程的编法没有思路啊
- ¥20 WSL打开图形化程序子窗口无法点击
- ¥15 Jupyter Notebook 数学公式不渲染
- ¥20 ERR_CACHE_MISS 确认重新提交表单
- ¥20 关于vba使用HTMLfile执行js函数问题
- ¥60 悬赏求解,通过实时现场摄像头的视频图像识别其他对家打出的麻将牌,识别麻将牌,识别牌墙位置,通过识别对家打出了什么牌
- ¥15 关于#GPU jetson#的pcie驱动开发问题,如何解决?
- ¥15 stm32f103zet6 串口5无法收发数据
- ¥15 关于C语言使用线程队列实现多线程并发