最新消息:服务器现已从linode换到fzhost.net,且主题已从retina 0.2换为大前端D8

【已解决】C#中的TextBox或RichTextBox自动滚动到最底端末尾

C# crifan 18浏览 0评论

【问题】

C#中一个RichTextBox,当新写入内容时,超过当前显示区域后,没法自动滚动到最低端,不方便查看内容。

【解决过程】

1.参考:

Rich Text box scroll to the bottom when new data is written to it

去添加对应的事件:

        private void rtbLog_TextChanged(object sender, EventArgs e)
        {
            rtbLog.SelectionStart = rtbLog.Text.Length; //Set the current caret position at the end
            rtbLog.ScrollToCaret(); //Now scroll it automatically
        }

效果就是所希望的了,当内容变化后,自动滚动到最底端:

now can auto scroll to end

 

【总结】

主要还是利用TextBox或RichTextBox的TextChanged事件,去实现需要的效果:

        private void rtbLog_TextChanged(object sender, EventArgs e)
        {
            rtbLog.SelectionStart = rtbLog.Text.Length; //Set the current caret position at the end
            rtbLog.ScrollToCaret(); //Now scroll it automatically
        }

转载请注明:在路上 » 【已解决】C#中的TextBox或RichTextBox自动滚动到最底端末尾

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (3)

  1. 用一个时间控件解决文本框出现空白区域的现象,在时间控件里面的timer1_Tick事件里面写如下代码 rtb.SelectionStart = rtb.Text.Length; rtb.ScrollToCaret(); timer1.Stop(); 注意:在文本框类容添加完毕后,再调用timer1.Start()
    ccc1年前 (2016-01-17)回复
  2. 当第二次执行下面语句是会出现区域空白的现象 用一个时间控件,并且只执行一个,在时间控件里面的timer1_Tick事件里面写如下代码 rtb.SelectionStart = rtb.Text.Length; rtb.ScrollToCaret(); 当第二次执行上面语句是就不会出现区域空白的现象,在文本框类容添加完毕后,在执行一次就可以解决出现区域空白的现象 了
    ccc1年前 (2016-01-17)回复
  3. 我以前也碰到这个问题。那时想了个笨办法,将RichTextBox反过来用。。。richtextBox1.Text="....."+"\n"+richtextBox1.Text;现在想来真是图样。。。。
    jinghong4年前 (2013-08-05)回复
54 queries in 0.482 seconds, using 12.50MB memory