 |
武永忠的意见:
有两个办法:第一是使用TopRow属性,当你拉动滚动条时,这个属性会变化;第二个办法是不用其自带的滚动条,在旁边自己加一个VScrollBar,把当前值记在Tag属性中,滚动后比较Value和Tag之间的差值就可以了。
张华的意见:
这个问题我在在很多表中都看到过,比如Ms SQLServer中,好像有一个TopRow属性,你如果一定要实现这个功能,建议采用与Rows比例尝试一下,这是不是一个好办法,不过这个方法可能也能实现这个问题。
Lee Rambow的意见:
这个问题无解,与是否使用MSFlexGrid/MSHFlexGrid无关。
在WINDOW中,滚动条的大小是根据已经装载的数据来决定的,你打开一个很大的WORD,一开始滚动条的拖拉句柄很大,然后迅速变小,就是这个道理。
不管你用什么方式:RDO/ADO还是其他的什么方式获取纪录集的数量过于庞大,纪录集就不会一次性读入,只在需要显示的时候才会读入。这点你用SNIFF进行监控会看的很明白。
因为滚动条是根据已经读取的数据量来计算位置的,所以在数据量很大的情况下不可能准确定位。
zhiquan、王雪峰的意见:
"上万甚至几十几百万行数据",我认为这时候就有必要分页了,如果不分页操作很难,没什么实际意义,系统差的可能死机。
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, Visual Basic, VB, DBGrid, dbgrid, dbcombo。
|