outputScreen.AppendText(text);
int length;
length = outputScreen.TextLength;
if (length > 10000)
{
    outputScreen.Text = outputScreen.Text.Substring(length - 10000));
}当 总长度>10000后 每次截取最后10000个数据的时候, 滚动条总会跳到最上,只能手动设到最后 有没有办法给Text赋值的时候光标直接是在最后的?或者有没有别的删掉textBox前面几行的办法?

解决方案 »

  1.   

    删除:outputScreen.Text = outputScreen.Text.Substring(0,10000));跳到最后: outputScreen.Select(outputScreen.Text.Length, outputScreen.Text.Length);
              outputScreen.ScrollToCaret();欢迎加入,IT技术联盟:34683253
      

  2.   


      private void tb_Import_TextChanged(object sender, EventArgs e)
            {
                ChanageTextBox(this.tb_Import);
            }
      private void ChanageTextBox(TextBox tb)
            {
                tb.SelectionStart = tb.Text.Length;
                tb.SelectionLength = 0;
                tb.ScrollToCaret();
            }
      

  3.   


      outputScreen.Focus(); 
      outputScreen.SelectionStart = outputScreen.Text.Length;光标在最后但是滚动条还是在最上面
      

  4.   


    outputScreen.ScrollToCaret();原来还有这个
      

  5.   


    这样改的话,没达到目的呀, 我是想当数据超过10000后, 删掉开始的几笔数据, 显示在textbox上面的保持10000
      

  6.   

    最后改用richtextbox了, textbox在设置text时滑动块会自动跳到最上边, rechtextbox滑动块是自己设置位置的,不会乱跳.