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

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

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

   //首先触发SelectedIndexChanged事件,然后再触发ItemCheck事件

         //存储选中的复选框的值
string strGXY=string.Empty;
private void chkGXYGrade_SelectedIndexChanged(object sender, EventArgs e)
{ //先把所有的选择框的状态都置为不选中的状态
for (int i = ; i < chkGXYGrade.Items.Count; i++)
{
chkGXYGrade.SetItemCheckState(i, CheckState.Unchecked);
}
} private void chkGXYGrade_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
{
//如果复选框选中的数目大于0,把选中的复选框的索引和e.Index(获取的当前选中点击的复选框的索引)比较,如果相等就把该复选框选中,否则置为非选中状态
if (chkGXYGrade.CheckedItems.Count > )
{
for (int i = ; i < chkGXYGrade.Items.Count; i++)
{
if (i != e.Index)
{
chkGXYGrade.SetItemCheckState(i, CheckState.Unchecked);
}
}
}
else
{ //如果复选框选中的数据小于0 ,则把所有的复选框的状态都置为未选中的状态
for (int i = ; i < chkGXYGrade.Items.Count; i++)
{ chkGXYGrade.SetItemCheckState(i, CheckState.Unchecked);
strGXY = string.Empty;
} } //循环复选框,根据选中的状态来获取选中的复选框的值
for (int i = ; i < chkGXYGrade.Items.Count; i++)
{
if (chkGXYGrade.Items[i].CheckState == CheckState.Checked)
{
strGXY = chkGXYGrade.GetItemText(i).ToString();
}
}
}

级别只能选择一个事件

   //记录复选框选中的状态
CheckState csGXB; //存储复选框选中的值(多选以‘/’区分 )
string strGXB = string.Empty; //先触发SelectedIndexChanged事件,再触发ItemCheck事件
private void chbGXBlb_SelectedIndexChanged(object sender, EventArgs e)
{
switch (csGXB)
{
case CheckState.Checked: strGXB = string.Empty;
for (int i = ; i < chbGXBlb.Items.Count; i++)
{
//获取选中的复选框的值
if (chbGXBlb.GetItemChecked(i))
{
if (strGXB == string.Empty)
{
strGXB = chbGXBlb.GetItemText(i);
}
else
{
strGXB += "/" + chbGXBlb.GetItemText(i);
}
}
}
break;
case CheckState.Unchecked:
strGXB = string.Empty;
for (int i = ; i < chbGXBlb.Items.Count; i++)
{
if (chbGXBlb.GetItemChecked(i))
{
if (strGXB == string.Empty)
{
strGXB = chbGXBlb.GetItemText(i);
}
else
{
strGXB = strGXB + "/" + chbGXBlb.GetItemText(i);
}
}
}
break; } } private void chbGXBlb_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
{
// e.State,获取当前复选框的选中还是未选中的状态(Checked 或UnChecked)
csGXB = e.State;
chbGXBlb_SelectedIndexChanged(null, null);
}

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

CheckedListBoxControl 实现复选框的单选与多选功能的更多相关文章

  1. 【三石jQuery视频教程】02.创建 FontAwesome 复选框和单选框

    视频地址:http://v.qq.com/page/m/8/c/m0150izlt8c.html 大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的H ...

  2. Bootstrap 表单和图片 (内联表单,表单合组,水平排列,复选框和单选框,下拉列表,校验状态,添加额外的图标,控制尺寸,图片)

    一.表单 基本格式 注:只有正确设置了输入框的 type 类型,才能被赋予正确的样式. 支持的输入框控件 包括:text.password.datetime.datetime-local.date.m ...

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

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

  4. 把复选框变成单选框(prop,attr的区别)

    如果项目中需要统一样式的话,有可能会遇到把复选框变成单选框的需求. 下面是用jquery的简单实现 $(function(){ $("input[type='checkbox']" ...

  5. Jquery学习笔记:操作form表单元素之二(复选框和单选框)

    在上面文章的基础上,我们介绍如何操作表单元素中的 复选框和单选框. 一.复选框 <label> <input type="checkbox" id="i ...

  6. 10个HTML5美化版复选框和单选框

    单选框Radiobox和复选框checkbox在网页中也十分常见,虽然它没有按钮的交互性强,但是如果能把它们像按钮那样美化一下,那也是非常不错的.本文收集了10个相对比较漂亮的美化版单选框和复选框,希 ...

  7. 复选框、单选框样式自定义(https://www.cnblogs.com/freedom-feng/p/11346396.html)

    复选框.单选框样式自定义(https://www.cnblogs.com/freedom-feng/p/11346396.html)复选框html内容如下:<input type="c ...

  8. 通过jquery将多选框变单选框

    多选框的name值为checkboxlist是复选框选中后更换其他复选框状态. function queryListByParam(e){ $("input[name='checkboxli ...

  9. 吾八哥学Selenium(三):操作复选框checkbox/单选框radio的方法

    复选框checkbox和单选框radio是web网站里经常会使用到的两个控件,那么在web自动化测试的时候如何利用Selenium来操作这俩控件呢?今天我们就来简单入门练习一下! html测试页面代码 ...

随机推荐

  1. xampp修改mysql默认密码详解

    在这里介绍xampp修改mysql默认密码的大概过程是先利用xampp的phpmyadmin进入修改mysql密码,修改之后我们再修改xampp中phpmyadmin的密码,这样就完整的修改mysql ...

  2. iis发布后,未能找到编译器可执行文件 csc.exe

    iis 未能找到编译器可执行文件 csc.exe在一台新安装完的Windows Server 2003上,打上Framework 3.5,配置好WebService的IIS,结果浏览时出现:未找到编译 ...

  3. 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性

    2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...

  4. HTML5离线缓存问题

    HTML5离线缓存问题 1.应用程序缓存 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. ...

  5. [转](六)unity4.6Ugui中文教程文档-------概要-UGUI Animation Integration

    5.Animation Integration(动画集成) 动画允许控件的所有状态之间相互转换,充分使用unity的动画系统.这是最强大的的转换模式的在处理很多属性的同时可以进行动画. 要使用动画转换 ...

  6. Jekyll教程——精心收藏

    以前总想搭建一个自己的个人网站,由于不懂php后台,所以在点点网开过自己的博客,后来慢慢向程序员转变,点点网的博客已经不能满足这个职业特定的需求,于是用worldpress搭建了自己的第一个网站,鼓捣 ...

  7. linkedin开源的kafka-monitor安装文档

    linkedin开源的kafka-monitor安装文档 linkedin 开源的kafka-monitor的安装使用可以参考官方的readme:流程介绍的已经比较清楚,但是还是有一些地方需要修正.让 ...

  8. validate插件深入学习-04自定义验证方法

    自定义验证方法 jQuery.validator.addMethod(name,method,[,message]) name: 方法名 method: function(value,element, ...

  9. Tutorial - Deferred Rendering Shadow Mapping 转

    http://www.codinglabs.net/tutorial_opengl_deferred_rendering_shadow_mapping.aspx Tutorial - Deferred ...

  10. 关于win10连接不上ftp的解决方案

    win10系统连接ftp服务器的时候,会先出现假死,比如: 然后 就会报错: 面对这些问题:我们不需要关闭放火请,卸载杀毒软件等等无用的操作,只需要一步就能搞定: 把ftp:// 换成 file:\\ ...