编程论坛's Archiver

hengzhou9571 发表于 2007-10-31 20:42

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

我才开始学习VB没多久,正在学习控件方面的知识,请问各位大侠,RichTextBox,可以自动滚屏吗?琢磨了一天也没有弄出来?不知道到底行不行啊?请各位大侠指定一番,要是不行的话也请给个信,免得我接着钻牛角尖.谢谢了.

bygg 发表于 2007-11-1 10:03

行是肯定行的,但是你所说的自动滚屏是不是因为文字很多,想让它自动地向下翻???

hengzhou9571 发表于 2007-11-1 12:27

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

qlong0728 发表于 2007-11-1 15:29

说个笨方法出来,不知是否有用,但是确实可以滚动<BR><BR>用RichTextBox1.Text.Length提取出数值<BR>如果想滚动到哪就<BR>RichTextBox1.SelectionStart = 多少数值<BR><BR>

hengzhou9571 发表于 2007-11-1 20:36

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

qlong0728 发表于 2007-11-2 08:33

可以提取行数,再来按行数滚动啊

hengzhou9571 发表于 2007-11-2 20:26

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

hengzhou9571 发表于 2007-11-8 19:11

怎么就没有一个高手回下下哈?[em03]

adou 发表于 2007-11-14 14:45

<P>晚上我再试试。</P>

hengzhou9571 发表于 2007-11-30 19:48

再回下自己的,看有没有高手教教我。我还是不会啊。

bygg 发表于 2007-12-1 14:00

控制RichTextBox里面的光标位置,把把这个光标位置始终保持在末尾。

hengzhou9571 发表于 2007-12-12 18:34

我已经解决。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.