找回密码
 立即注册

QQ登录

只需一步,快速开始

jianxia84

注册会员

2

主题

11

帖子

87

积分

注册会员

积分
87

活字格认证

最新发帖
jianxia84
注册会员   /  发表于:2011-6-10 13:36  /   查看:7293  /  回复:8
在移动了滚动条之后,如何获得画面中可见的最左边的一列的列号

8 个回复

倒序浏览
gw0506
超级版主   /  发表于:2011-6-10 16:53:00
沙发
很抱歉,没有接口可以直接拿到这个信息。
回复 使用道具 举报
jianxia84
注册会员   /  发表于:2011-6-13 08:27:00
板凳
那有什么方法可以获得滚动条滚动的距离吗?有的话,能否给一段代码示例?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-6-13 09:18:00
地板
你可以使用ShowActiveCell、ShowColumn、ShowRow这几个方法来制定当前显示出来的是那一行、列或单元格。

如果指定的Column不在可见范围内,调用ShowColumn后,将会把制定的Column调整到可见区域的最后一列。

滚动条的滚动距离跟控件大小,TabStrip策略有关,即使拿到了,也很难计算出最后一列。
回复 使用道具 举报
jianxia84
注册会员   /  发表于:2011-6-13 10:02:00
5#
我想做一个画面,窗体上有个按钮,按钮始终跟随某一列的位置移动。
比如说在第8列的上方,开始的时候,第8列在画面的右边,按钮在第8列正上方。如果滚动条滚动后,第8列移动到左边了,那这个按钮也跟着移动到相应位置,仍然位于第8列的正上方。如果继续滚动,第8列滚动到不可见了,那这个按钮也相应的移动到不可见。
请问这个能够实现吗?  如何获得第8列相对于窗体的位置?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-6-13 10:18:00
6#
这个case恐怕很难实现。

我冒昧的建议你调整这一设计,在窗体上不断移动Button对性能影响比较大,而且这样的设计也很少见。

另外,你可以考虑将Spread的ColumnHeader设置为多行,将其中一行的Cell都设置为Button,这样可以模拟你描述的效果。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-6-13 10:18:00
7#
原帖由 gw0506 于 2011-6-13 10:18:00 发表
这个case恐怕很难实现。

我冒昧的建议你调整这一设计,在窗体上不断移动Button对性能影响比较大,而且这样的设计也很少见。

另外,你可以考虑将Spread的ColumnHeader设置为多行,将其中一行的Cell都设置为Button,这样可以模拟你描述的效果。
回复 使用道具 举报
jianxia84
注册会员   /  发表于:2011-6-13 13:40:00
8#
谢谢您的建议
回复 使用道具 举报
jplzj
论坛元老   /  发表于:2011-6-16 20:44:00
9#
可以实现,用滚动条的上下左右事件来控制
       '滚动条左移
    Private Sub FpSpread_LeftChange(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.LeftChangeEventArgs) Handles FpSpread.LeftChange
    获取坐标,重新给按钮坐标新值。
    End Sub
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部