开发 基于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)
{
}
}

最新文章

  1. 6.openstack之mitaka搭建网络节点
  2. js判断是否为ie6以外的浏览器,若是,则调用相应脚本
  3. viewport 详解
  4. html5中的表单
  5. 添加Sql作业,新建步骤出现:从IClassFactory为CLSID为{AA40D1D6-CAEF-4A56-B9BB-D0D3DC976BA2}的COM组件创建实例失败,原因是出现以下错误:c001f011。的解决方法
  6. nyoj 123 士兵杀敌(四) 树状数组【单点查询+区间修改】
  7. 浅谈JavaScript中的字符串操作
  8. XJOI1571爱心蜗牛【树形动规】
  9. C/C++语言简介之语言组成
  10. UIEvent&amp;nbsp;UIResponder&amp;nbsp;UI_04
  11. 【BZOJ 2713】[Violet 2]愚蠢的副官&amp;&amp;【BZOJ1183】[Croatian2008]Umnozak——【数位DP】
  12. CentOS 查看和修改 Mysql 字符集
  13. Python学习笔记(Ⅰ)——Python程序结构与基础语法
  14. constructor与prototype
  15. 自己训练SVM分类器进行HOG行人检测
  16. element的form表单中如何一行显示多el-form-item标签
  17. ES7 async 函数
  18. ADO.NET介绍2
  19. Swift3.0:NSURLConnection的使用
  20. libcurl HTTP POST请求向服务器发送json数据【转】

热门文章

  1. CodeForces 333E. Summer Earnings
  2. P2330 05四川 繁忙的都市
  3. HOJ - 2715最小费用流
  4. (5)DataSet
  5. (1)Unity3d界面、入门
  6. 基于sklearn的分类器实战
  7. ELK之收集haproxy日志
  8. POJ 1797 Heavy Transportation SPFA变形
  9. [Bzoj3687]简单题(bitset)
  10. xamarin android 获取根证书代码