开发 基于wince 手持设备数据库应用时 由于是触摸屏 当datagrid 数据过多 往往用户烦于去控制又窄又细的上下滚动条 尤其是高分辨率的屏上 (如魅族M8系统 720×480)

而且datagrid 不支持触摸拖动 所以自己研究出来如下 事件组合

       //x y 是静态变量 鼠标按下 坐标记录  

       private void dataGrid2_MouseDown(object sender, MouseEventArgs e)
{
x = e.X;
y = e.Y;
} // 鼠标滑动事件处理 private void dataGrid2_MouseMove(object sender, MouseEventArgs e)
{
try
{
//当前鼠标y坐标值与滑动开始y值的差 给予datagrid 上下滑动距离值
yy = e.Y - y; //25 值 datagrid行高值(这个值不定 需要自己反复试得到理想值) 根据距离给定滑动行数
yy = yy / ; dataGrid2.CurrentRowIndex = dataGrid2.CurrentRowIndex + yy;
} //捕捉不做任何处理
catch
{ }
}

使用 效果不错!

测试发现这个并不是很好使,后来又自己定义添加的新方法比较好使

在datagrid上的Controls成员内有三个成员比较重要,其中Controls[1]表示的滚动条

我们在拖动滚动条的时候datagrid可以上下滚动,如果将鼠标的拖动绑定在滚动条的滚动上,基本上就可以实现对datagrid的拖动了,因此实现手段如下

         private static int y1;//定义存储变量
private static int ScrMinimum;//scrollbar的最大最小值
private static int ScrMaximum;
VScrollBar ScrBar = new VScrollBar(); //新建一个滚动条
private void MouseDown(object sender, MouseEventArgs e)
{
try
{
y1 = e.Y;
ScrBar = (VScrollBar)dG_Task.Controls[];//获取datagrid上的滚动条 竖状
ScrMinimum = ScrBar.Minimum;
ScrMaximum = ScrBar.Maximum;
}
catch (System.Exception ex)
{
}
}
void MouseMove(object sender, MouseEventArgs e)
{ try
{
int _dec = y1-e.Y;
int _NewValue= ScrBar.Value + _dec/;//选取一个合适的滚动值
if (_NewValue < ScrMinimum)
ScrBar.Value = ScrMinimum;
else if (_NewValue > ScrMaximum)
ScrBar.Value = ScrMaximum;
else
ScrBar.Value = _NewValue;
}
catch (System.Exception ex)
{
}
}

(转) 实现wince datagrid 上下滑屏数据浏览的更多相关文章

  1. Jquery实现手机上下滑屏滑动的特效代码

    要引入两个jquery插件 可以去网上下载 <script src="jquery-1.11.1.min.js"></script><script s ...

  2. NPOI导出WPF DataGrid控件显示数据

    最近做个项目,需要导出DataGrid显示的数据,中间遇到了不少的坑,在此纪录一下,方便以后查看,也希望能给用到的人,一点帮助. 导出DataGrid显示的数据,并不是导出DataGrid的Items ...

  3. 从WEB SERVICE 上返回大数据量的DATASET

    前段时间在做一个项目的时候,遇到了要通过WEB SERVICE从服务器上返回数据量比较大的DATASET,当然,除了显示在页面上以外,有可能还要用这些数据在客户端进行其它操作.查遍了网站的文章,问了一 ...

  4. vue+echarts+datav大屏数据展示及实现中国地图省市县下钻

    随着前端技术的飞速发展,大数据时代的来临,我们在开发项目时越来越多的客户会要求我们做一个数据展示的大屏,可以直观的展示用户想要的数据,同时炫酷的界面也会深受客户的喜欢. 大屏展示其实就是一堆的图表能够 ...

  5. 使用Hue上传hive数据

    大概逻辑是先上传hdfs数据,然后创建hive外部表,关联到hdfs上传数据的位置. 截图比较概要,但是用起来很简单 1.创建路径和上传文件 2.创建外部表

  6. Easyui的datagrid结合hibernate实现数据分页

    最近在学习easyui的使用,在学到datagrid的时候遇到了一些问题,终于抽点时间整理了一下,分享出来,请各位前辈高手多多指教! 1.先来看看效果,二话不说,上图直观! 2.easyui的data ...

  7. WINCE设备开机灰屏问题(很怪异)

    WINCE设备开机灰屏问题(很怪异) 1.     问题现象 图1 无法进入系统,虽然没有调试信息,但应该可以判断是程序跑飞了.我们这款产品用到3种显示屏(采用不同的驱动IC),可是测试发现1和2号屏 ...

  8. Android开发之从网络URL上下载JSON数据

    网络下载拉取数据中,json数据是一种格式化的xml数据,非常轻量方便,效率高,体验好等优点,下面就android中如何从给定的url下载json数据给予解析: 主要使用http请求方法,并用到Htt ...

  9. bootstrap上传表单的时候上传的数据默认是0 一定要小心

    bootstrap上传表单的时候上传的数据默认是0 一定要小心

随机推荐

  1. Epoll详解及源码分析【转】

    转自:http://blog.csdn.net/chen19870707/article/details/42525887 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] ...

  2. llinux 定时器 转载自 http://blog.chinaunix.net/uid-11848011-id-96374.html

    这篇文章主要记录我在试图解决如何尽可能精确地在某个特定的时间间隔执行某项具体任务时的思路历程,并在后期对相关的API进行的归纳和总结,以备参考. 问题引出 很多时候,我们会有类似“每隔多长时间执行某项 ...

  3. poj 2112(二分+网络流)

    Optimal Milking Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 15749   Accepted: 5617 ...

  4. MongoDB状态查询详解:db.serverStatus()

    https://www.2cto.com/database/201501/370191.html

  5. AC日记——Milking Grid poj 2185

    Milking Grid Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 8314   Accepted: 3586 Desc ...

  6. python学习之-- 生成唯一ID

    以下以2种方法生成唯一ID def uuid_method(): """第一种方法""" import uuid return str(uu ...

  7. Wannafly挑战赛2 C.Butterfly(线段树优化枚举)

    题目链接  C.Butterfly 令$fd[i][j]$为以$s[i][j]$为起点开始往下走最大连续的‘X’个数 令$fl[i][j]$为以$s[i][j]$为起点开始往左下走最大连续的‘X’个数 ...

  8. Codeforces 691E Xor-sequences

    矩阵快速幂.递推式:dp[k][i]=sum(dp[k-1][j]*f[i][j]),dp[k][i]表示的意义是序列中有k个元素,最后一个元素是i的方案数,f[i][j]=1表示i与j能放在一起,反 ...

  9. Jython中文乱码问题

    最近,在项目中需要用到Java代用Python的代码,并且需要传参数,因此选用了Jython包,但是,如果在调用python脚本时,出现了中文乱码的现象.代码如下: PythonInterpreter ...

  10. SQL-基础学习使用的数据库资料

    -- ------------------------ Create Customers table-- ----------------------CREATE TABLE Customers( c ...