devExpress之GridView小技巧(一):实现拖拽多选
来源:互联网 发布:mac u盘4g以上文件 编辑:程序博客网 时间:2024/04/28 15:14
GridView可以通过Shift键或Ctrl键以及Ctrl+A快捷键实现多选,但是默认不支持拖拽多选,好像也没有设置的方法。这样虽然没什么问题,但是肯定会给用户带来不便。
首先要设置OptionsSelection中的MultiSelect为true,也就是允许多选,否则下面的一切都是浮云。
本文通过以下代码实现拖拉多选的功能,主要是编写MouseDown、MouseMove、MouseUp三个函数。
这里需要注意一下GridHitInfo,这个类可以根据x、y坐标获取该点在GridView中的相关信息,例如在哪行哪列哪个单元格内,或者是否在单元格里。
//用于记录,鼠标是否已按下 bool isMouseDown = false; //用于鼠标拖动多选,标记是否记录开始行 bool isSetStartRow = false; //用于鼠标拖动多选,记录开始行 private int StartRowHandle = -1; //用于鼠标拖动多选,记录现在行 private int CurrentRowHandle = -1; //用于实现鼠标拖动选择多行功能中的一个方法,对单元格区域进行选中 private void SelectRows(int startRow, int endRow) { if (startRow > -1 && endRow > -1) { gridView.BeginSelection(); gridView.ClearSelection(); gridView.SelectRange(startRow, endRow); gridView.EndSelection(); } } //实现鼠标拖动选择多行 ,鼠标按下事件 private void gridView_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { isMouseDown = true; } } //实现鼠标拖动选择多行 ,鼠标移动时 private void gridView_MouseMove(object sender, MouseEventArgs e) { if (isMouseDown) { GridHitInfo info = gridView.CalcHitInfo(e.X, e.Y); //如果鼠标落在单元格里 if (info.InRow) { if (!isSetStartRow) { StartRowHandle = info.RowHandle; isSetStartRow = true; } else { //获得当前的单元格 int newRowHandle = info.RowHandle; if (CurrentRowHandle != newRowHandle) { CurrentRowHandle = newRowHandle; //选定 区域 单元格 SelectRows( StartRowHandle, CurrentRowHandle); } } } } } //实现鼠标拖动选择多行 ,鼠标放开时 private void gridView_MouseUp(object sender, MouseEventArgs e) { StartRowHandle = -1; CurrentRowHandle = -1; isMouseDown = false; isSetStartRow = false; }
作者:叉叉哥 转载请注明出处:http://blog.csdn.net/xiao__gui/article/details/7938507
- devExpress之GridView小技巧(一):实现拖拽多选
- devExpress之GridView小技巧(二):点击空白处清空选择
- devExpress之GridView小技巧(三):列标题点击事件
- devExpress之GridView小技巧(四):右键菜单和可用设置
- GridView技巧(一)
- .NET小技巧(一)之InternalsVisibleToAttribute
- DevExpress GridView使用技巧之如何添加和设置右键菜单
- 小技巧之汇总一
- gridview小技巧
- GridView小技巧
- GridView个小技巧
- devExpress之GridView属性设置总结(图文)
- Android自动化(一)之控件定位小技巧
- GridView的小技巧(1)--如何实现鼠标划过改变GridView的行背景色
- GridView的几个小技巧
- GridView的一些小技巧
- VC 小技巧(一)
- linux小技巧(一)
- 用DateFormat处理时间格式,转化为timestamp形式存入数据库(以XXXX年XX月XX日为例)
- 返回数据到前一个Activity---startActivityForResult方法
- 二叉搜索树两结点最低公共祖先结点
- 使用git管理nodejs+socket.io+redis+juicer+waterfall+ubuntu+aws ec2开发网站
- Windows7系统下笔记本做无线路由设置无线网络共享
- devExpress之GridView小技巧(一):实现拖拽多选
- 使用 Eclipse Memory Analyzer 进行堆转储文件分析
- Java学习札记19:详解Java中的Pattern和Matcher
- java传递对象给C++的处理过程
- xml特殊字符
- 延迟盲注
- SPSS探索分析实践操作
- asp.net给单独页面设置编码
- Gh0st通信协议解析(1)