回 帖 发 新 帖 刷新版面

主题:请问如何实现两个表的水平或垂直滚动条同步滚动?

一个表单上放两个有相同数据源的表控件,如下图所示。
请问如何实现两个表的水平或垂直滚动条同步滚动?例如,操作一个表的水平滚动条时,另一个表的水平滚动条也同步滚动。

回复列表 (共18个回复)

沙发

本人曾编了一个带合计行的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]

板凳

1 楼 的老师:
      你在梅子论坛上的文章还没有来得及学习、消化,有一些关键内容没有现金的网民难以看到(这是梅子论坛的一大缺陷,不像本论坛那样开放受人欢迊!)。但是,看了你的演示,我觉得非常好,正对我的想法。我所以提出这个问题,也是想在表格的底部添加一行合计项,只要解决了两个表的同步水平滚动问题就好办了。
    在access2007中增加了一项非常实用功能,选择Σ项在表格的底部就会添加一行合计项,随着字段值的更改、记录的增加合计值会同步更新,始终保持在表格的底部。我很想知道是如何实现的。你的工作是很有意义的,会有很多网友想知道的,希望你整理后在本论坛重新发表,供大家学习、研究。

3 楼

... ...
这个很复杂么?
在你的第一个grid的Scrolled事件中添加代码:
LPARAMETERS nDirection
thisform.grid2.DoScroll(nDirection)
不就可以实现同步滚动了么?!

4 楼

[quote]... ...
这个很复杂么?
在你的第一个grid的Scrolled事件中添加代码:
LPARAMETERS nDirection
thisform.grid2.DoScroll(nDirection)
不就可以实现同步滚动了么?!
[/quote]

我做带合计行的Grid这个类开始也觉得“同步滚动”不复杂,但要做的很完善并不容易。3楼的代码在拖动滚动条时将会不同步。还需要解决同步列锁定、调整宽度、调整顺序、合计行更新等细节问题。

5 楼

本想回复时上传附件,但已经忘记如何在本论坛上传附件,请楼主告诉一下方法。

6 楼

5 楼:回复时上传附件的方法我也不知道,请你发新帖吧!

7 楼

zx1931老师:我引用了一下你制作的totalgrd类,总是报错。请你指教一下,你制作的totalgrd类如何使用到别的表格上,属性等应该如何设置?

8 楼

这个问题提的很好,本人在关注此事。
因为本人软件中也有这事,只是没象各位提出这么高的要求。
觉得不同步是天经地义的,没敢想让它们同步。

9 楼


this.Height=oGrdMain.RowHeight+2
改为:
this.Height=oGrdMain.RowHeight+4

10 楼

去掉 this.scrolled_event 事件中的:

this.Refresh

我来回复

您尚未登录,请登录后再回复。点此登录或注册