[Windows Form] 使多行文本框滚动到最新插入的那一行

在 .Net Full Framework中,要想使多行文本框滚动到最新插入的那一行,非常简单,示范如下:

 

textBox1.AppendText(string.Format("{0}/r/n", DateTime.Now.ToLongTimeString())); textBox1.ScrollToCaret();

 

然而,在.Net Compact Framework 3.5中,文本框没有AppendText方法,所以实现方法不得不成为下面这样的:

 

textBox.Text += string.Format("{0}/r/n", message); textBox.Select(textBox.Text.Length - 1, 0); textBox.ScrollToCaret();

 

这个实现方然远不如.Net Full Framework的那个例子优雅。而且,更重要的是,只能说勉强实现了我们的功能需求而以,但是效果非常不好。每次当我想插入新的一行时,这段代码实际上是把整个TextBox的内容重置了,然后再从第一行跳到最后一行。如果你测试一下,当行数比较多而且你迅速地插入很多行,这个TextBox里面的内容是不断地闪动的,ScrollBar在第一行与最后一行之间来来回回移动。总之效果非常差,一点也不Smooth。

 

拜求解决方法,谢谢。

 

你可能感兴趣的:(windows,.net,测试,textbox)