标题:表格控件滚动条绑定的问题
只看楼主
zhr822
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-9-9
结帖率:75%
已结贴  问题点数:20 回复次数:15 
表格控件滚动条绑定的问题
求教各位老师,我表单上的一个表格控件,显示多列内容,每次点击表单上的命令按钮会增加一些数据,数据增加,列数也增加,如何绑定左右的滚动条自动到右边,显示后面的数据?
搜索更多相关主题的帖子: 表格 增加 控件 绑定 滚动条 
2020-10-26 20:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
了解表格控件的属性、方法、事件

坚守VFP最后的阵地
2020-10-26 21:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
试试:
GO命令指定表记录号
GRID的SetFocus方法获取焦点
GRID的ActivateCell方法激活一个单元格
2020-10-27 09:29
zhr822
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-9-9
得分:0 
回复 3楼 吹水佬
老师,我的问题是这样,我在表单上做了一个表格如下,我用time控件设置每秒更新一下比赛数据,表格只能显示18列的内容。当到了19列的时候就显示不出数据了,滚动条不跟着向右走,我想把滚动条绑定的右边,也就是当19列数据出现的时候,屏幕显示2列~19列的内容,当20列数据出现的时候,屏幕显示3列~20列的内容........,你看应该怎么写代码。

我之前用列表框这样写代码:thisform.list1.ListItemId = thisform.list1.ListCount,也就是滚动条和新出来数据是绑定的,但是换成表格就不知道怎么写了,找不到表达方式。
2020-10-27 20:19
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 4楼 zhr822
可否给定一个显示条件:当字段数超过18个时,比如19个就取其2~19字段显示;字段数增加到20个时就取其3~20字段显示,依次类推,不知道是否符合你的意思,仅供参考哈。
2020-10-28 04:57
zhr822
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-9-9
得分:0 
回复 5楼 schtg
符合我的意思,但是这个语句要怎么表达,我的数据时一列一列从左到右存放的,最好是滚动条绑定到数据列的最右端,这样不管显示多少列,都能看到最后面的数据。
2020-10-28 09:02
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 6楼 zhr822
固定18列,变动每列column的ControlSource
2020-10-28 09:42
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:10 
用 Grid.DoScroll(5 或 7) 方法,看行不行.
2020-10-28 10:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
试试用ActivateCell到最后一列,VFP9测试可以

程序代码:
CREATE CURSOR tt (f1 I DEFAULT 1)
APPEND BLANK
FOR i=2 TO 20
     ALTER TABLE tt ADD COLUMN  ("f"+TRANSFORM(i)) I 
ENDFOR
of = CREATEOBJECT("form1")
of.show(1)
RETURN

DEFINE CLASS form1 as Form
    ADD OBJECT cmd1 as commandbutton WITH left=10,top=10,height=22
    ADD OBJECT grid1 as grid WITH left=10,top=40
    PROCEDURE cmd1.click
        thisform.grid1.setfocus
        thisform.grid1.ActivateCell(1,FCOUNT("tt"))
    ENDPROC
ENDDEFINE
2020-10-28 11:46
zhr822
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-9-9
得分:0 
回复 8楼 厨师王德榜
thisform.Grid1.DoScroll(7) 很好用,完全解决了问题。顺便问一句,这个括号里的5或7是啥意思?像这类问题不请教论坛高人,自己在家摸索很久也找不到方法。
谢谢老师给予的指点,我会记住你给予的帮助,我要大吼一声“太好了!”
2020-10-28 12:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503643-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.312803 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved