主题:请问如何实现两个表的水平或垂直滚动条同步滚动?
sdn193551
[专家分:10] 发布于 2009-11-06 21:37:00
一个表单上放两个有相同数据源的表控件,如下图所示。
请问如何实现两个表的水平或垂直滚动条同步滚动?例如,操作一个表的水平滚动条时,另一个表的水平滚动条也同步滚动。
最后更新于:2009-11-06 21:46:00
回复列表 (共18个回复)
沙发
zxl931 [专家分:3420] 发布于 2009-11-07 00:16:00
本人曾编了一个带合计行的Grid,其中的合计行使用了一个Grid,两个Grid的水平滚动条实现了同步滚动。垂直滚动条同步滚动楼主可根据同样的原理实现。
具体见梅子论坛帖子:
[url=http://www.meizvfp.com/bbs/dispbbs.asp?BoardID=2&ID=84513&replyID=&skin=1]http://www.meizvfp.com/bbs/dispbbs.asp?BoardID=2&ID=84513&replyID=&skin=1[/url]
板凳
sdn193551 [专家分:10] 发布于 2009-11-08 10:37:00
1 楼 的老师:
你在梅子论坛上的文章还没有来得及学习、消化,有一些关键内容没有现金的网民难以看到(这是梅子论坛的一大缺陷,不像本论坛那样开放受人欢迊!)。但是,看了你的演示,我觉得非常好,正对我的想法。我所以提出这个问题,也是想在表格的底部添加一行合计项,只要解决了两个表的同步水平滚动问题就好办了。
在access2007中增加了一项非常实用功能,选择Σ项在表格的底部就会添加一行合计项,随着字段值的更改、记录的增加合计值会同步更新,始终保持在表格的底部。我很想知道是如何实现的。你的工作是很有意义的,会有很多网友想知道的,希望你整理后在本论坛重新发表,供大家学习、研究。
3 楼
Gleam [专家分:3100] 发布于 2009-11-08 16:11:00
... ...
这个很复杂么?
在你的第一个grid的Scrolled事件中添加代码:
LPARAMETERS nDirection
thisform.grid2.DoScroll(nDirection)
不就可以实现同步滚动了么?!
4 楼
zxl931 [专家分:3420] 发布于 2009-11-08 16:40:00
[quote]... ...
这个很复杂么?
在你的第一个grid的Scrolled事件中添加代码:
LPARAMETERS nDirection
thisform.grid2.DoScroll(nDirection)
不就可以实现同步滚动了么?!
[/quote]
我做带合计行的Grid这个类开始也觉得“同步滚动”不复杂,但要做的很完善并不容易。3楼的代码在拖动滚动条时将会不同步。还需要解决同步列锁定、调整宽度、调整顺序、合计行更新等细节问题。
5 楼
zxl931 [专家分:3420] 发布于 2009-11-08 16:42:00
本想回复时上传附件,但已经忘记如何在本论坛上传附件,请楼主告诉一下方法。
6 楼
sdn193551 [专家分:10] 发布于 2009-11-08 20:56:00
5 楼:回复时上传附件的方法我也不知道,请你发新帖吧!
7 楼
sdn193551 [专家分:10] 发布于 2009-11-17 07:59:00
zx1931老师:我引用了一下你制作的totalgrd类,总是报错。请你指教一下,你制作的totalgrd类如何使用到别的表格上,属性等应该如何设置?
8 楼
北京惬意 [专家分:1330] 发布于 2009-11-17 10:41:00
这个问题提的很好,本人在关注此事。
因为本人软件中也有这事,只是没象各位提出这么高的要求。
觉得不同步是天经地义的,没敢想让它们同步。
9 楼
cbl518 [专家分:57140] 发布于 2009-11-17 16:33:00
this.Height=oGrdMain.RowHeight+2
改为:
this.Height=oGrdMain.RowHeight+4
10 楼
cbl518 [专家分:57140] 发布于 2009-11-17 16:44:00
去掉 this.scrolled_event 事件中的:
this.Refresh
我来回复