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

用DEV控件中的CheckedListBoxControl控件,当然VS中的复选框组合控件应该按照下面方法也可以实现该功能,可以试下(⊙o⊙)哦

代码来啦O(∩_∩)O哈哈~

 1   //首先触发SelectedIndexChanged事件,然后再触发ItemCheck事件
 2
 3         //存储选中的复选框的值
 4         string strGXY=string.Empty;
 5         private void chkGXYGrade_SelectedIndexChanged(object sender, EventArgs e)
 6         {
 7
 8             //先把所有的选择框的状态都置为不选中的状态
 9             for (int i = 0; i < chkGXYGrade.Items.Count; i++)
10             {
11                 chkGXYGrade.SetItemCheckState(i, CheckState.Unchecked);
12             }
13         }
14
15         private void chkGXYGrade_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
16         {
17             //如果复选框选中的数目大于0,把选中的复选框的索引和e.Index(获取的当前选中点击的复选框的索引)比较,如果相等就把该复选框选中,否则置为非选中状态
18             if (chkGXYGrade.CheckedItems.Count > 0)
19             {
20                 for (int i = 0; i < chkGXYGrade.Items.Count; i++)
21                 {
22                     if (i != e.Index)
23                     {
24                         chkGXYGrade.SetItemCheckState(i, CheckState.Unchecked);
25                     }
26                 }
27             }
28             else
29             {
30
31                 //如果复选框选中的数据小于0 ,则把所有的复选框的状态都置为未选中的状态
32                 for (int i = 0; i < chkGXYGrade.Items.Count; i++)
33                 {
34
35                     chkGXYGrade.SetItemCheckState(i, CheckState.Unchecked);
36                     strGXY = string.Empty;
37                 }
38
39             }
40
41
42             //循环复选框,根据选中的状态来获取选中的复选框的值
43             for (int i = 0; i < chkGXYGrade.Items.Count; i++)
44             {
45                 if (chkGXYGrade.Items[i].CheckState == CheckState.Checked)
46                 {
47                     strGXY = chkGXYGrade.GetItemText(i).ToString();
48                 }
49             }
50         }

级别只能选择一个事件

 1   //记录复选框选中的状态
 2         CheckState csGXB;
 3
 4         //存储复选框选中的值(多选以‘/’区分  )
 5         string strGXB = string.Empty;
 6
 7         //先触发SelectedIndexChanged事件,再触发ItemCheck事件
 8         private void chbGXBlb_SelectedIndexChanged(object sender, EventArgs e)
 9         {
10             switch (csGXB)
11             {
12                 case CheckState.Checked:
13
14                     strGXB = string.Empty;
15                     for (int i = 0; i < chbGXBlb.Items.Count; i++)
16                     {
17                         //获取选中的复选框的值
18                         if (chbGXBlb.GetItemChecked(i))
19                         {
20                             if (strGXB == string.Empty)
21                             {
22                                 strGXB = chbGXBlb.GetItemText(i);
23                             }
24                             else
25                             {
26                                 strGXB += "/" + chbGXBlb.GetItemText(i);
27                             }
28                         }
29                     }
30                     break;
31                 case CheckState.Unchecked:
32                     strGXB = string.Empty;
33                     for (int i = 0; i < chbGXBlb.Items.Count; i++)
34                     {
35                         if (chbGXBlb.GetItemChecked(i))
36                         {
37                             if (strGXB == string.Empty)
38                             {
39                                 strGXB = chbGXBlb.GetItemText(i);
40                             }
41                             else
42                             {
43                                 strGXB = strGXB + "/" + chbGXBlb.GetItemText(i);
44                             }
45                         }
46                     }
47                     break;
48
49             }
50
51         }
52
53
54   private void chbGXBlb_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
55         {
56             // e.State,获取当前复选框的选中还是未选中的状态(Checked 或UnChecked)
57             csGXB = e.State;
58             chbGXBlb_SelectedIndexChanged(null, null);
59         }

多选:根据选择改变获取值

转载于:https://www.cnblogs.com/mengzhixingping/p/4465524.html

CheckedListBoxControl 实现复选框的单选与多选功能相关推荐

  1. 好用的下拉选框(单选,多选,全选,清空和反选,及个种样式)----个人钟爱

    下拉选框 如需样例和具体效果,请点击下面的连接. 好用的下拉选框(单选,多选,全选,清空和反选,及个种样式) 附件一:layui应用formselect layui.config({base: './ ...

  2. js checkbox复选框实现单选功能

    本文仅供学习交流使用,demo下载见文末 js checkbox复选框实现单选功能 <script type="text/javascript">$(":ch ...

  3. 实现复选框的单选效果

    <!DOCTYPE> <html> <head> <title>实现复选框的单选效果</title> </head> <b ...

  4. 分享美化复选框和单选框插件

    复选框和单选框是表单中使用非常频繁的组件,但在多数浏览器上显示比较死板, 大家都知道,在Web的Form中美化是最头痛的,尤其是表单中的"input[type=checkbox]" ...

  5. LayUI实现Checkbox复选框的单选及取消单选,即只能选一个或者全都不选

    项目用LayUI进行开发,需求方提出一个范围权限控制的实现方案.在复选框只能单选的前提下,管理员可以取消勾选,查看所有数据,但普通用户由于权限限制,不可以取消勾选. 在查找资料的过程中,发现jq的常用 ...

  6. jquery实现HTML复选框变单选框

    jquery实现HTML复选框变单选框 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 <scri ...

  7. Java学习day078 Swing用户界面组件(四:选择组件)(复选框、单选钮、边框、组合框、滑动条)

    使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识. day078   Swing用户界面组件(四:选择组件)(复选框.单选钮.边框.组合框.滑动条) 前 ...

  8. WEB自动化_告警框处理(对话框、确认框、提示框、输入/编辑框、勾选框、单选框、复选框、下拉框)

    WEB自动化_下拉框选择(通过元素的value属性选择.下标选择.文本选择) 1. 获取(对话框.确认框.提示框)对象 al = driver.switch_to.alert点击ok 获取文本 点击c ...

  9. HTML如何设置复选框、单选框以及默认选项?

    本篇文章主要给大家介绍HTML怎么设置复选框以及单选框的. 我们在网站开发过程中,有时会需要实现类似调查问卷的功能,那么既然是问卷,就避免不了单选或者多选的情况.对于新手朋友来说,或许不太清楚. 下面 ...

  10. 如何让checkbox复选框只能单选

    如何让checkbox复选框只能单选 在项目开发中遇到一个这样的问题,要让一列复选框架在任何时间段内只能选择一个. 有人说怎么不用单选框了,因为单选框一旦选择了就不能取消选择,所以这里只能用复选框. ...

最新文章

  1. after exercise
  2. AI基础:正则表达式
  3. ripro子主题eeesucai-child集成后台美化包(适用于设计素材站+资源下载站等)
  4. C++ string 大小写转换
  5. MTK驱动(75)--- MT6739平台的thermal高温充电机制调整
  6. 如何做好Web 安全测试
  7. union[c++] in gamedev
  8. POJ--3278 Catch That Cow
  9. remote collaboration on physical tasks 应用
  10. ResNet网络结构搭建
  11. 教程 | 做一个自己专属的本地 BLAST 数据库
  12. 《生如夏花》——泰戈尔
  13. 中国网络词“no zuo no die”被收入美国俚语词典
  14. 破解《航海王-燃烧之血》
  15. PA1.3 代码+笔记
  16. Cell Reports:任栓成/高东/胡志安/唐玲团队合作揭示压力性失眠发生的神经机制
  17. 解决VS Community“无法刷新此账户的凭证”和“无法添加此账户”的问题
  18. eclipes 安装的常用配置
  19. Poj 1125 Stockbroker Grapevine(Floyd算法求结点对的最短路径问题)
  20. 为什么摸了一天的鱼,你还是感觉这么累?

热门文章

  1. 学习HTML5+CSS3的第二天
  2. 利用存储过程批量生成数据
  3. 关于游戏中的材质系统
  4. jBPM与业务系统集成-通过定制Task Instance等方式实现
  5. 使用struts2未登录,不能操作
  6. Linux下idea 配置Android SDK
  7. CentOS下配置多个Tomcat同时运行 本篇文章来源于 Linux公社网站(www.linuxidc.com)
  8. [转]Ubuntu下快速安装python
  9. Redhat Linux安装JDK 1.7
  10. rpm 安装、卸载软件命令 ——以nginx为例