找回密码
 立即注册

QQ登录

只需一步,快速开始

Tachiro

高级会员

31

主题

90

帖子

1271

积分

高级会员

积分
1271

圣诞拼拼乐微信认证勋章

Tachiro
高级会员   /  发表于:2020-11-10 11:50  /   查看:3163  /  回复:5
本帖最后由 Tachiro 于 2020-11-21 05:19 编辑

请问,C1TrueDBGrid 要怎么侦测 scrollbar 已被使用者拉到底了

如下图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

5 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-10 12:31:13
沙发
目前没有办法判断是否到底,

只能判断滚动条滚动的距离,代码如下
c1TrueDBGrid1.Splits[0].VerticalOffset;
回复 使用道具 举报
Tachiro
高级会员   /  发表于:2020-11-10 18:15:13
板凳
谢谢您的回复!

我找到以下的网页:
https://www.grapecity.com/blogs/ ... ons-in-c1truedbgrid

但是,我的 c1TrueDBGrid 控件不是动态生成的!
要怎么修改才可以侦测 scrollbar 已被使用者拉到底了?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-10 18:34:16
地板
这个只是自己实现了EndScroll / AfterScroll事件,也是没有办法去判断是否已经拉到底了,也是无法解决你的问题的

想到了一个办法是,通过ScrollGrid方法,滚动到最后一行,此时得到的VerticalOffset,和ScrollGrid滚动前得到的VerticalOffset进行比较,如果一致的话,就是已经滚动到最底了,如果不一样就是没有滚动到底,当然,最后需要将VerticalOffset的值设置回之前存的原始滚动值

下面的代码稍有不同,是判断水平滚动条是否滚动到最后一列的,你稍作修改,将水平改成垂直滚动条,将最后一列改成最后一行就行

  1.             var oldoffset = c1TrueDBGrid1.Splits[0].HorizontalOffset; ;
  2.             c1TrueDBGrid1.ScrollGrid(c1TrueDBGrid1.Splits[0].DisplayColumns.Count - 1, 0);
  3.             var newoffset = c1TrueDBGrid1.Splits[0].HorizontalOffset;
  4.             if (oldoffset == newoffset)
  5.                 MessageBox.Show("检测已经滚动到底");
  6.             c1TrueDBGrid1.Splits[0].HorizontalOffset= oldoffset;
复制代码


回复 使用道具 举报
Tachiro
高级会员   /  发表于:2020-11-10 20:07:32
5#
谢谢您的回复!参考您的代码,已经可以了!

我的具体作法:

1. 绑定 c1TrueDBGrid.DataSource 之后,先记录表格 ScrollBar 最底部的位置
c1TrueDBGrid1.ScrollGrid(0, c1TrueDBGrid1.Splits[0].Rows.Count);
_iLastRowOffset = c1TrueDBGrid1.Splits[0].VerticalOffset;

2. Scroll 事件
private void c1TrueDBGrid1_Scroll(object sender, C1.Win.C1TrueDBGrid.CancelEventArgs e)
{
    var oldoffset = c1TrueDBGrid1.Splits[0].VerticalOffset;

    if ((oldoffset + 200) >= _iLastRowOffset) //这里 +200 主要是因为,拉到底的值不会等于 _iLastRowOffset
    {
        //查询数据,并重新绑定 c1TrueDBGrid.DataSource
        NextPage();
    }
}
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-11 11:09:42
6#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部