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

【问题】

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
        }


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

  1. 用一个时间控件解决文本框出现空白区域的现象,在时间控件里面的timer1_Tick事件里面写如下代码
    rtb.SelectionStart = rtb.Text.Length;
    rtb.ScrollToCaret();
    timer1.Stop();
    注意:在文本框类容添加完毕后,再调用timer1.Start()

  2. 当第二次执行下面语句是会出现区域空白的现象
    用一个时间控件,并且只执行一个,在时间控件里面的timer1_Tick事件里面写如下代码
    rtb.SelectionStart = rtb.Text.Length;
    rtb.ScrollToCaret();
    当第二次执行上面语句是就不会出现区域空白的现象,在文本框类容添加完毕后,在执行一次就可以解决出现区域空白的现象

  3. 我以前也碰到这个问题。那时想了个笨办法,将RichTextBox反过来用。。。

    richtextBox1.Text=”…..”+”\n”+richtextBox1.Text;

    现在想来真是图样。。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量