这里通过List对象绑定GridControl,且不用在GirdControl界面中添加任何列,实现CheckBox列的方法

1、列表中出现CheckBox列

非常简单,在绑定的List实体中,增加一列bool型的属性,如public bool 选择 { set; get; },直接绑定到gird控件就能出现Check列,但一定要给此属性赋初值false或true。

2、表头出现全选框,控制表格所有列checkbox状态,比较复杂

a. 从工具箱中拖出一个dev checkEdit控件(vs自带的checkbox也行,只是风格不统一),放置在gdv控件的表头部分。

如果工具箱中没有找到这个控件,右键单击工具箱某条目,点击“选择项”,弹出“选择工具箱项”,在.net Fromwork组件中,通过筛选器选择checkedit,一定注意版本,将其打钩,确定就能将checkEidt添加进工具箱。

chedkedit放置到表头上后,位置可能无法调整,将其achor调整为top,right后就可用方向键微调位置了。再改回top,left也没问题。

b.为全选控件添加事件

private void chkCut_CheckedChanged(object sender, EventArgs e)
        {           
            for (int i = 0; i < gdvPassbyArl.RowCount; i++)
            {
                //就用这条语句虽然能直接将界面上的打上勾,但是如果该列正好是排序状态下,行顺序会立即调整,导致此循环混乱
                //所以改用下面两句取出实体,给实体赋值。最后再gdcPassbyArl.RefreshDataSource()更新界面。
                //gdvPassbyArl.SetRowCellValue(i, "选择", checkEdit1.Checked);
                AirlineBasic arl = gdvPassbyArl.GetRow(i) as AirlineBasic;
                arl.选择 = chkCut.Checked;
            }
            gdcPassbyArl.RefreshDataSource();
        }

c. 将实体中bool类型列的名称隐藏,同时,固定其宽度

gdvPassbyArl.Columns["选择"].OptionsColumn.ShowCaption = false;

gdvPassbyArl.Columns["选择"].MaxWidth = 50;
gdvPassbyArl.Columns["选择"].MinWidth = 50;

完成。

此方法不足之处:

1、此方法直接绑定List实体类,没有在gird界面中添加对应列,因此无法影响每一行的check事件,如果有此需求,只能在grid界面中为实体添加每一列filedname,对bool属性添加列后,选择ColumnEdit为new...CheckEdit。然后再到in-palce Editor中设置该CheckEdit的对应事件。

2、列表中checkBox列只能居中,没有找到方法实现Near或Far,因此标题栏上的checBox只能目测调整位置,与表中的checkbox对齐

3、此方法不能为check列设置标题文字,原因为上面2,设置文字标题后无法对齐

GridControl 添加全选列的更多相关文章

  1. flexigrid扩展(添加全选,格式化表单)

    1.关于flexigrid的属性这里不多说,百度一大把. 这里主要说一个参数process process参数:编写对某一列进行自定义处理的函数 function 方法名(tddiv,pid){}// ...

  2. 实现DataGridView和DevExpress.GridControl表头全选功能

    1)DevExpress控件的GridView的实现多选操作 先讲DevExpress控件的GridView的实现,要实现的功能基本上是处理单击全选操作.重新绘制表头等操作,首先在加载第一步实现相关的 ...

  3. C#总结(三)DataGridView增加全选列

    最近的一个winform的项目中,碰到datagridview控件的第一列添加全选的功能,通常这个功能,有两种实现方式:1. 为控件添加DataGridViewCheckBoxColumn来实现,但是 ...

  4. DataGridView增加全选列

    最近的一个winform的项目中,碰到datagridview控件的第一列添加全选的功能,通常这个功能,有两种实现方式:1. 为控件添加DataGridViewCheckBoxColumn来实现,但是 ...

  5. Redis总结(五)缓存雪崩和缓存穿透等问题 Web API系列(三)统一异常处理 C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步) C#总结(二)事件Event 介绍总结 C#总结(三)DataGridView增加全选列 Web API系列(二)接口安全和参数校验 RabbitMQ学习系列(六): RabbitMQ 高可用集群

    Redis总结(五)缓存雪崩和缓存穿透等问题   前面讲过一些redis 缓存的使用和数据持久化.感兴趣的朋友可以看看之前的文章,http://www.cnblogs.com/zhangweizhon ...

  6. ASP.NET给DataGrid,Repeater等添加全选批量删除等功能

    很多情况下,在管理或者查看列表的时候我们需要很需要“全选”这个功能,这在ASP.NET中是非常容易实现的,下面我就将演示一点小代码实现这一功能.   实现全选的还是js的一个小函数:   [code] ...

  7. winform datagridview在添加全选checkbox时提示:不能设置 selected 或 selected 既不是表 Table 的 DataColumn 也不是 DataRelation。

    在项目中,需要多选功能,于是在datagridview添加了一列DataGridViewCheckBoxColumn 在给datagridview绑定完数据集之后,对全选进行操作的时候,发现总报错,报 ...

  8. HTML5定制全选列头

    随着HTML5产品分支的不断深入使用,HTML5的需求也是越来越多,表格组件的使用也不例外,什么排序,分页,自动列宽等.最近有客户提出了如果让表格的列头加上全选的功能.细细分析其实就是两部分,表格的b ...

  9. GridControl表头全选操作实现之最优方法

    突然发现很久没有写博客了. 昨天整了个Windows Live Writer 就为了以后好好写写博客. 所以,开始咯. 为了积累,也为了分享. 之前在博客园中看到一篇文章:<Winform分页控 ...

随机推荐

  1. Unity遍历资源下的所有文件以及子文件

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...

  2. pip安装tensorflow出错怎么办

    随着人工智能的开发越来越多人参与,现在下载tensorflow 1.2版本也经常出错了,如下: 这时怎么办呢? 其实比较简单,可以通过pypi的网站来下载: https://pypi.python.o ...

  3. [置顶] 【机器学习PAI实践八】用机器学习算法评估学生考试成绩

    (本文数据为实验用例) 一.背景 母亲是老师反而会对孩子的学习成绩造成不利影响?能上网的家庭,孩子通常能取得较好的成绩?影响孩子成绩的最大因素居然是母亲的学历?本文通过机器挖掘算法和中学真实的学生数据 ...

  4. ogg高版本到低版本同步

    源端ogg版本: [oracle@rac1 ogg]$ ggsci -v Oracle GoldenGate Command Interpreter for Oracle Version 11.2.1 ...

  5. Compass入门

    一.Compass是什么?   简单说,Compass是Sass的工具库(toolkit). Sass本身只是一个编译器,Compass在它的基础上,封装了一系列有用的模块和模板,补充Sass的功能. ...

  6. vuex(一)mutations

    前言:vuex的使用,想必大家也都知道,类似于状态库的东西,存储某种状态,共互不相干的两个组件之间数据的共享传递等.我会分开给大家讲解vuex的使用,了解并掌握vuex的核心(state,mutati ...

  7. 从VS2010跳跃到VS2017

    Visual Studio 配色方案 https://studiostyl.es/ C#语言新特性 C#4.0:http://www.cnblogs.com/yangqi/archive/2010/0 ...

  8. [转]Java 8新特性探究(lambda)

    原文地址:http://my.oschina.net/benhaile/blog/175012 目录[-] 函数式接口 Lambda语法 方法引用 总结 函数式接口 函数式接口(functional ...

  9. Form元素与字体

    前言 以前写代码的时候总是喜欢在body元素中写字体属性,用以控制全局字体样式,后来发现表单元素中的字体样式并不能被控制,郁闷的不行. 解决方法 因为表单元素无法继承body的字体属性,所以要单独设置 ...

  10. C语言中库函数strstr的实现

    在C语言中库函数strstr()函数表示在一个字符串str1中查找另一个字符串str2,如果查到则返回str2在str1中首次出现的位置,如果找不到则返回null. char* strstr(char ...