博主这几天就准备离职了,以后不再做.Net开发。因此这应该是我写的最后一篇关于dev控件的博文。既然是最后一篇,那就写的具体一些。画个圆满的省略号......

本文介绍gridcontrol怎样实现复选框功能。网上有几篇这种文章,但功能不够完好,按它做的还有问题。因此我就具体的介绍我的一下实现方法供大家參考。

首先看下我的gridcontrol(因为数据部分涉及到项目的保密内容。所以呆会的实现效果就不上图了):

我这里有一个选择某行后,将改行的班级名字显示在上面的文本框的功能,全选则所有显示。

各个控件的name:

班级文本框:barEditClass

全选复选框:checkEditAll

表格复选框:checkEditClass

表格控件:gcSelectClass、gvSelectClass

以下介绍具体的实现方法:

第一步:拖一个gridcontrol控件,点击最后一列,选择columEdit属性,在弹出的下拉框中选择checkbox控件,就可以在表格的最后一列显示复选。

第二步:拖一个checkEdit控件,放在表格的最后一列的列头作为全选复选框,可是你会发现执行时这个复选框的位置是偏的。也就是不在列头上,以下解决问题,选中checkEditAll控件,将其Anchor属性设为Top, Right,再选中复选框列,将MinWidth和MaxWidth属性的值设为Width的属性值(我这里是104),再次执行。你会发现复选框列的大小不能改变了。全选复选框也就老老实实地呆在列头上。

第三步:绑定数据源。我这里用的数据源是自己定义的实体类,前面的几列放在一个字段中。后面的复选框列放在一个单独的字段。

当然你用datatable的话也是一样的道理。

在数据源中加入一个“check”字段,类型为bool,然后将表格的复选框列的fieldname字段设为”check“。成功绑定数据源

第四步:这一步实现选中复选框后将该行的班级名称显示在上面的班级文本框上。

找到checkEditClass控件,在该控件的事件中创建CheckedChanged事件(选中状态改变后触发该事件)。

以下看代码(为了防止程序崩溃,最好加上try...catch):

                //显示班级
gvSelectClass.CloseEditor();
gvSelectClass.UpdateCurrentRow();
string name = gvSelectClass.GetRowCellValue(gvSelectClass.FocusedRowHandle, gvSelectClass.Columns[1]).ToString();
string value = gvSelectClass.GetRowCellValue(gvSelectClass.FocusedRowHandle, gvSelectClass.Columns[4]).ToString();
//添加班级
if (value == "True")
{
if (m_className.IndexOf(name) > -1)
{
}
else
{
if (m_className == "")
{
m_className += name;
}
else
{
m_className += ",";
m_className += name;
}
}
}
//去掉班级
else
{
if (m_className.IndexOf(name) > -1)
{
string[] classNames = m_className.Split(',');
if (classNames[0] == name)
{
m_className = m_className.Replace(name + ",", "");
}
else
{
m_className = m_className.Replace("," + name, "");
}
}
}
barEditClass.EditValue = m_className;

我们一行一行的来看代码,前两行是在改变复选框状态后更新数据源。可不要小瞧它们,这两行代码是不可缺少的。假设不用会导致复选框状态不能及时更新到数据源,进而导致错误结果。第三行和第四行用来获取选中的复选框所在行的复选框状态和班级名称,之后的代码添加班级和去掉班级的。班级之间以逗号间隔,这里我定义了一个全局变量m_className,相信大家都看得懂。最后一行代码即将要显示的班级名字显示在文本框barEditClass上面。

第五步:实现全选和所有取消功能。选中checkEditAll控件。在控件事件中创建CheckedCh

gridcontrol复选框功能实现(超具体)的更多相关文章

  1. 你见过吗?9款超炫的复选框(Checkbox)效果

    复选框(Checkbox)在各个浏览器中的效果不一致,因此很多 Web 开发人员会自己重新设计一套界面和使用体验都更佳的复选框功能.下面就给大家分享9款超炫的复选框(Checkbox)效果,纯 CSS ...

  2. 个人永久性免费-Excel催化剂功能第58波-批量生成单选复选框

    插件的最大威力莫过于可以把简单重复的事情批量完全,对日常数据采集或打印报表排版过程中,弄个单选.复选框和用户交互,美观的同时,也能保证到数据采集的准确性,一般来说用原生的方式插入单选.复选框,操作繁琐 ...

  3. ListBox复选框拓展

    Toolkit的LongListMutiSelector的复选框功能,想必许多人都需要吧!然而系统本身控件ListBox虽然也有多选功能,可是外观上却缺乏复选框,选择效果只是颜色变化.于是在上一个项目 ...

  4. 制作复选框(Toggle)

    怎样判断是否应当使用复选框 复选框,就是对一个选项做上一个标记,表示这个选项已经被选中了.在游戏中,复选框一般用来做一些选项的控制,这种选项一般都只有两种答案:是和否.例如,单击一下开启音乐的复选框, ...

  5. 组合框里添加复选框的方法(使用勾选的假象,用图片代替而已,并非QT原生支持)

    组合框可以看作是列表框和文本框的组合,因其占据的空间少,使用操作方便,常被界面设计人员用于界面开发设计中,在有限个输入的条件下,组合框常用来代替文本框,这样从用户使用角度来看,更趋人性化,所见即所得. ...

  6. 实现在DevExpress.XtraGrid.GridControl的列头绘制复选框以实现全选的功能

    首先新建一个Win Form测试项目,拖一个GridControl控件到窗体上. public partial class Form1 : Form { public Form1() { Initia ...

  7. CheckedListBoxControl 实现复选框的单选与多选功能

    由于工作需要,需要实现复选框的单选与多选功能,找了好多资料都不是很全,经过两天苦苦的挖挖挖,终于完成啦O(∩_∩)O哈哈~ 用DEV控件中的CheckedListBoxControl控件,当然VS中的 ...

  8. 可分组的选择框控件(MVVM下)(Toggle样式 仿造单选框RadioButton,复选框CheckBox功能)

    原地址: http://www.cnblogs.com/yk250/p/5660340.html 效果图如下:支持分组的单选框,复选框样式和MVVM下功能的实现.这是项目中一个快捷键功能的扩展. 1, ...

  9. freemarker中修改和添加功能中包含checkbox复选框默认选中需求的解决方式

    今天做的公司ERP系统上线第一天内部使用的,各种BUG铺天盖地,[虽然只是技术总监一个人在测试……],其中有一个就是其中部门管理页面中的修改和添加功能 一个人做一套ERP总是有点疏漏的,虽然里面的东西 ...

随机推荐

  1. linux下安装firefox

    首先检查系统有没有安装:rpm -qa|grep firefox 如果有安装,先删掉rpm -e * firefox不同版本下载:http://liulanmi.com/firefox 具体方法如下: ...

  2. mybatis foreach Map(String,List)类型

    <select id="queryList" resultType="com.performancetest.modules.ptest.entity.Stress ...

  3. TSP 旅行商问题(状态压缩dp)

    题意:有n个城市,有p条单向路径,连通n个城市,旅行商从0城市开始旅行,那么旅行完所有城市再次回到城市0至少需要旅行多长的路程. 思路:n较小的情况下可以使用状态压缩dp,设集合S代表还未经过的城市的 ...

  4. linux内核设计与实现第一章

    1.1 unix的历史 Thompson实现unix 伯克利大学对其进一步开发推出了著名的BSD 其他各大厂商相继推出自己的unix 1.1.2 unix的特性 unix系统是一个强大,健壮,稳定的操 ...

  5. HDU 5937 Equation(DFS+剪枝)

    题目链接 Equation 给定1-9这9个数字各自的卡片数,求能构成形如$i + j = k$的等式个数 等式中$i,j,k$必须都为个位数 若两个等式中$i,j,k$不完全相等,则这两个等式为不同 ...

  6. 第3章 Spring Boot 入门指南

    Part II. 入门指南 如果你刚刚开始使用Spring Boot,这是你的一部分内容! 在这里我们将会回答一些基本的“what?”, “how?” 和 “why?”的问题. 在这里你会找到一个详细 ...

  7. BZOJ 3065 带插入区间第K小值

    题目描述 Description 从前有n只跳蚤排成一行做早操,每只跳蚤都有自己的一个弹跳力a[i].跳蚤国王看着这些跳蚤国欣欣向荣的情景,感到非常高兴.这时跳蚤国王决定理性愉悦一下,查询区间k小值. ...

  8. 洛谷1967货车运输 即 NOIP2013 DAY1 T3

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...

  9. WCF中常用的binding方式 z

    WCF中常用的binding方式: BasicHttpBinding: 用于把 WCF 服务当作 ASMX Web 服务.用于兼容旧的Web ASMX 服务. WSHttpBinding: 比 Bas ...

  10. 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解)

    分类: Oracle(9) 版权声明:转载请注明出处 JmilkFan_范桂飓:http://blog.csdn.net/jmilk 目录(?)[+] 目录 目录 软件环境 前言 安装Oracle监听 ...