回 帖 发 新 帖 刷新版面

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

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

回复列表 (共18个回复)

11 楼


this.scrolled_event 事件中的:
……
IF oGrid.LockColumns#0
        this.DoScroll(nDirection)
ELSE
……
当设置固定列后,拖动水平滑块,会出现不同步!

12 楼

用 <- 或 -> 键滚动列时,也出现不同步现象!

13 楼

你的代码确实是有点太复杂了!

你换几种思路去考虑这问题,可能代码就简单多了,效果会更好!


按你思路,如果用:

SYS(1270) - 返回对指定位置对象的引用。

统一同步滚动是不是更好点呢!

14 楼

你试试看:
如果不用原来的滚动条,另外添加滚动条……

水平与垂直与其它控件同步滚动,可以解决表格周围数据同步问题!在一些软件很有作用的!

今天粗略的看了看你的实例,很不全面,可能没理解你的意图!
所以谈了以上,我的一点经验,可能有些误解或不对,请你原谅为盼!!!

15 楼

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

1、首先必须是VFP9.0,因为用到控件Anchor新属性。
2、调用方法,在表单的init事件中添加一行代码thisform.totalRow1.CreateTotalRow
   预先需要设置的属性:
   (1)autofillgrid 是否在生成合计行时由程序自动设置Grid数据源及格式,如果为.T.,需要设置Table、FldName和ShowFld属性。如果此属性为.F.,需要手工设置表格数据源及格式等(比如使用表格生成器)
   (2)Table        主表格数据源(autofillgrid为.T.时才需要设置)
   (3)FldName      每一列的标题名(autofillgrid为.T.时才需要设置,顺序对应于ShowFld字段名)
   (4)ShowFld      需要显示的字段名(autofillgrid为.T.时才需要设置)
   (5)Colwidth     主表列宽((autofillgrid为.T.时才需要设置,顺序对应于ShowFld字段名))
   (5)sumfld       需要求和的字段名
   (6)TotalTextFld “合计”两个字所在的字段名
   (7)TotalRowType 合计行的格式,设为0或1
   (8)oMainGrd     主表对象引用路径

16 楼

[quote]你试试看:
如果不用原来的滚动条,另外添加滚动条……

水平与垂直与其它控件同步滚动,可以解决表格周围数据同步问题!在一些软件很有作用的!

今天粗略的看了看你的实例,很不全面,可能没理解你的意图!
所以谈了以上,我的一点经验,可能有些误解或不对,请你原谅为盼!!!
[/quote]

谢谢cbl518版主关注,您客气了。
    11和12楼所提到的问题,我在做的过程中都遇到了,全部已经解决,版主如果下载的是9月27日的那个版本应该不会出现上述问题的。如果真有这样的问题,麻烦版主说一下你的操作环境及方法等,以便完善。

    “另外添加滚动条……”这个思路我也想过,由于相应需要解决的问题还很多,暂时还没有时间着手做。



17 楼

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

小弟向甬车兄问好!
近来忙于BOM管理方面的一个软件,很少来本论坛了。

18 楼

15 楼,谢谢zxl931老师的指教,我已经能够引用你做的totalgrd类。还是不错的,就是使用设置有点  麻 烦,不像access2007那么简单!你编程序的方法对我是很有帮助的。

我来回复

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