如题:
     (winform) 如何在Textbox的光标位置插入字符串后,设置Textbox 的 scroll 所处的位置呢?     很抱歉!现只有20分。

解决方案 »

  1.   


                          textBox1.SelectionStart = textBox1.Text.Length - 1;
    textBox1.Text +=rand.Next(100).ToString();
    textBox1.SelectionStart = textBox1.Text.Length - 1;
    textBox1.ScrollToCaret();
      

  2.   

    textBox1.SelectionStart = textBox1.TextLength;  
      

  3.   

    在文本最后如此是很正常。但是在文本中间添加时就出现了不委的情况: 例:
    1 111111111111
    2  2222222
    3 3333
    4 444444
    5 5555555
    6 6666666
    7 77777777
    8 88888888888
     当前textbox共有文本8行,可只有5行的显示空间。
    例:当前正显示着

    4
    5 55555  55555
    6
    7
    此5行,光标正在 5 55555 的后面。
    然后,通过ctrl+d 在此处添加 ‘2010-5-19’,
    希望是

    4
    5 55555 2010-5-19 55555
    6
    7
    显示在textbox可见区域,可实际是
    1
    2

    4
    5 55555 2010-5-19 55555
    正显示着。
      

  4.   


    textBox1.SelectionLength = 0;
    textBox1.SelectedText = " 2005-12-4 ";ctrl+D时你是这样设置吗?
      

  5.   

    楼主可能把简单的事件弄复杂了,你重设了Text或Lines造成TextBox的光标回到首字符处就那样了。
    重设SelectedText不会有这个问题。
      

  6.   

    回复zzx509,
       是重新设置的其text,因为要在光标所在的位置加入 某字符串,所以先获取了textbox的原值,然后重新组合了新的串后,再赋值给textbox。现就是要将textbox的scroll重定位到原值。
       请教:有另外的方法可以实现此功能吗?
      

  7.   

    Ctrl+D操作后的处理代码改成4楼的。
      

  8.   

    4楼:
    textBox1.SelectionLength = 0;
    textBox1.SelectedText = " 2005-12-4 ";可是假如textbox原值的第1行里正好包含" 2005-12-4 " 值的话,这样恐怕就有问题了吧!
      

  9.   

     
    zzx509:
      多谢了!
      

  10.   

    planet5563(二楼)
    这方法不错。