找回密码
 立即注册

QQ登录

只需一步,快速开始

MAONY

论坛元老

6

主题

25

帖子

4080

积分

论坛元老

积分
4080

活字格认证

MAONY
论坛元老   /  发表于:2014-9-11 00:20  /   查看:5460  /  回复:4
请教一个问题,

还是在TrueDBGrid7到C1truedbgrid的升级后发现的问题,
原来的时候选择最后一行数据,垂直滚动条自动移动,露出没显出来的一条数据。

换完控件后在grid中选择显示中的最后一条就不能自动显示出下一条数据了。

请问,这个是要如何单独设呢?
就是自动滚一条数据的效果。

谢谢!
Concentration and persistence

4 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-9-11 09:38:00
沙发
回复 1楼MAONY的帖子

C1TrueDBGrid有ScrollGrid(int cols, int rows)方法,可以将滚动条跳转显示你所需要的地方。
比如滚动到下一行,就是:
  1.                     int c=this.c1TrueDBGrid1.Col;
  2.                     int r=this.c1TrueDBGrid1.Row;
  3.                     this.c1TrueDBGrid1.ScrollGrid(c, r + 1);
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
MAONY
论坛元老   /  发表于:2014-9-12 09:08:00
板凳
回复 2楼Alice的帖子

已经实现了。呵呵。

谢谢回复!

还有个特点就是当末行已经是选中状态时,不管点击行数据部分还是RecordSelector部分,都不滚动。

具体方法如下:
定义一个intCurrentRow,
在WndProc里,intCurrentRow = grid.Row,
这样就保持了点击之前的当前选中行

在grid的click事件里,判断点击时鼠标位置。
分两种情况,1点击数据行部分,2点击RecordSelectors部分
判读的位置不一样。
然后用CellContaining方法,取得点击的行号。
(位置情况2时,CellContaining方法参数1 e.X要加RecordSelectorWidth,否则就取不到了)
如果cellcontaining是true,判断intCurrentRow是否等于取得的行号
不等时,grid.scroll(0,1)

以上。

评分

参与人数 1金币 +100 收起 理由
Alice + 100 解决问题方法反馈。奖励金币。

查看全部评分

Concentration and persistence
回复 使用道具 举报
MAONY
论坛元老   /  发表于:2014-9-12 09:11:00
地板
回复 2楼Alice的帖子

家里没有具体代码,只能简单描述了。
希望对之后遇到相似问题的朋友有点帮助。
Concentration and persistence
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-15 10:53:00
5#
回复 4楼MAONY的帖子

谢谢你的回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部