找回密码
 立即注册

QQ登录

只需一步,快速开始

MAONY

论坛元老

6

主题

25

帖子

4080

积分

论坛元老

积分
4080

活字格认证

MAONY
论坛元老   /  发表于:2014-10-23 00:01  /   查看:5045  /  回复:3
问题背景:升级项目。旧的滚动一下是一行,新的滚动一下是三行。

用滚动轮滚动grid的数据行

简单的实现方案:修改系统的鼠标设置,设滚动轮为上下滚一行。
(但旧版里系统也是设的三行,却可以滚一行)


试了这个方法去实现:
    Private intRowScroll As Integer = 0
    Private blnWheel As Boolean = False
    Private Sub c1_ScrolTest(ByVal sender As Object, ByVal e As CancelEventArgs) Handles c1.Scroll
        If blnWheel Then
            e.Cancel = True
            blnWheel = False
            c1.ScrollGrid(0, intRowScroll)
        End If
    End Sub
    Private Sub c1_MouseWheel(ByVal sender As Object, ByVal e As MouseEventArgs) Handles c1.MouseWheel
        intRowScroll = -e.Delta / 120
        blnWheel = True
    End Sub

------------------------------------------------------------------------------------------
不知道还有什么别的方式吗
Concentration and persistence

3 个回复

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

C1TrueDBGrid下提供了ScrollGrid方法。可以将滚动定位到固定的行。
我测试了下这个方法,代码参考:
  1.   private void button4_Click(object sender, EventArgs e)
  2.         {
  3.             int r = this.c1TrueDBGrid1.Row;
  4.             int c = this.c1TrueDBGrid1.Col;
  5.             r++;
  6.             this.c1TrueDBGrid1.ScrollGrid(c, r);
  7.         }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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

1.滚动轮滚动的时候
  要区分(1)滚动轮上滚还是下滚,(2)滚动轮拨了多少
  (需要做处理)
2.左键按住滚动条拖动的时候(不需要做特殊处理)

----------------------------------------------------
确实用到了您提到的ScrollGrid方法。
Concentration and persistence
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-24 11:32:00
地板
回复 3楼MAONY的帖子

如果你使用的这么细致,需要对滚轮方向,拨了多少做处理,就需要自己写代码判断。
之前你的方案也是可行的。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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