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