注册 登录
编程论坛 VB.NET论坛

[求助]如何实现自动滚屏啊?

hengzhou9571 发布于 2007-10-31 20:42, 4404 次点击
我才开始学习VB没多久,正在学习控件方面的知识,请问各位大侠,RichTextBox,可以自动滚屏吗?琢磨了一天也没有弄出来?不知道到底行不行啊?请各位大侠指定一番,要是不行的话也请给个信,免得我接着钻牛角尖.谢谢了.
12 回复
#2
bygg2007-11-01 10:03
行是肯定行的,但是你所说的自动滚屏是不是因为文字很多,想让它自动地向下翻???
#3
hengzhou95712007-11-01 12:27

是让它自动往上跑.我原来想使用一个Timer控件,然后触发一个随时间自动处理的事件来不断增加垂直滚动条的值,从而达到自动滚屏的目的,但是发现RichTextBox自带的滚动条取不出值来,直接使用VscrollBall控件倒是可以自动控制它的滚动了,又不知道怎么将它的值和RichTextBox关联起来.

#4
qlong07282007-11-01 15:29
说个笨方法出来,不知是否有用,但是确实可以滚动

用RichTextBox1.Text.Length提取出数值
如果想滚动到哪就
RichTextBox1.SelectionStart = 多少数值

#5
hengzhou95712007-11-01 20:36
qlong兄的办法我试过了,确实可行,可是却有两个问题,首先是启动之后,它不会立刻滚动,而是会在光标移动到屏幕底端的时候才开始滚动;另一个问题就是由于滚动是按字符来计算的而不是按行来计算的,所以滚动的速度并不完成相等且滚动不连续,一跳一跳的。我在想,能不能取出整个文件的行数,然后再让文件每次滚动多少行。不知道这可不可能呢?
#6
qlong07282007-11-02 08:33
可以提取行数,再来按行数滚动啊
#7
hengzhou95712007-11-02 20:26

行数确实可以提取出来,高兴了一会儿,可是后来试了几回才发现,原来lines数组是以原来文本的换行符作为分隔的,它所谓的一行实际上是我们平常说的一个自然段,而每个自然段在屏幕上显示出来的宽度肯定是不一样的。郁闷到头有两个大了。是不是还有别的方法来提取行数啊?

#8
hengzhou95712007-11-08 19:11
怎么就没有一个高手回下下哈?
#9
adou2007-11-14 14:45

晚上我再试试。

#10
hengzhou95712007-11-30 19:48
再回下自己的,看有没有高手教教我。我还是不会啊。
#11
bygg2007-12-01 14:00
控制RichTextBox里面的光标位置,把把这个光标位置始终保持在末尾。
#12
hengzhou95712007-12-12 18:34
我已经解决。
1