博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CheckedListBoxControl 实现复选框的单选与多选功能
阅读量:5095 次
发布时间:2019-06-13

本文共 4085 字,大约阅读时间需要 13 分钟。

 

由于工作需要,需要实现复选框的单选与多选功能,找了好多资料都不是很全,经过两天苦苦的挖挖挖,终于完成啦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             else29             {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                             else25                             {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                             else42                             {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

你可能感兴趣的文章
Android recycleView的研究和探讨
查看>>
HDU1024 Max Sum Plus Plus 【DP】
查看>>
[你必须知道的.NET]第二十一回:认识全面的null
查看>>
十六进制的ASCII码 "\u6cf0\u56fd" 解码成unicode
查看>>
Java语言概述
查看>>
关于BOM知识的整理
查看>>
android中自定义下拉框(转)
查看>>
Android设计模式源码解析之外观模式(Facade)
查看>>
使用word发布博客
查看>>
构建oracle12c的Docker镜像
查看>>
Maven详解
查看>>
Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法
查看>>
数据结构 : Hash Table [II]
查看>>
面向对象的小demo
查看>>
获取地址栏参数
查看>>
java之hibernate之helloworld
查看>>
微服务之初了解(一)
查看>>
GDOI DAY1游记
查看>>
收集WebDriver的执行命令和参数信息
查看>>
数据结构与算法(三)-线性表之静态链表
查看>>