C# WinForm中实现CheckBox全选反选功能
今天一群里有人问到这个功能,其实应该挺简单,但提问题的人问题的出发点并没有描述清楚。因此,一个简简单单的需求,就引起了群内热烈的讨论。下面看看这个功能如何去实现,先上效果:
下面直接上代码,请不要在意控件的名称以及Text属性:
public Form6()
{
InitializeComponent();
foreach (CheckBox ck in groupBox1.Controls)
{
ck.CheckedChanged += Ck_CheckedChanged;
}
}
private void checkBox1_Click(object sender, EventArgs e)
{
if (checkBox1.CheckState == CheckState.Checked)
{
foreach (CheckBox ck in groupBox1.Controls)
ck.Checked = true;
checkBox1.Text = "反选";
}
else
{
foreach (CheckBox ck in groupBox1.Controls)
ck.Checked = false;
checkBox1.Text = "全选";
}
} private void Ck_CheckedChanged(object sender, EventArgs e)
{
CheckBox c = sender as CheckBox;
if (c.Checked == true)
{
foreach (CheckBox ch in groupBox1.Controls)
{
if (ch.Checked == false)
return;
}
checkBox1.Checked = true;
checkBox1.Text = "反选";
}
else
{
checkBox1.Checked = false;
checkBox1.Text = "全选";
}
}
接下来要说的是,关于全选CheckBox事件的选取。最初,该同学提的问题是:有没有遇到过按钮点击没反应?但随着群里大家一人一嘴的提示,该同学渐渐把自己的需求给提出来了,他的代码是用“全选”CheckBox的CheckChanged事件中去修改“子选项”里面的6个CheckBox选中状态。然而,他又想到:如果不是点“全选”CheckBox,而是下面6个CheckBox挨个点,上面那个全选的状态怎么改。于是该同学又给下面六个CheckBox分别注册了CheckChanged事件,去判断并修改全选CheckBox的状态。最终,导致了他所谓的事件嵌套,跳不出来了。
其实放弃使用全选的CheckChanged事件,选用Click事件就可以解决掉全选的两个Check属性更改的来源:1是来自自己的点击更改状态,2.是来自子选项中所有checkbox都选中,间接导致的全选。没有总结,仅作记录。
C# WinForm中实现CheckBox全选反选功能的更多相关文章
- 关于Winform下DataGridView中实现checkbox全选反选、同步列表项的处理
近期接手一个winform 项目,虽然之前有.net 的经验,但是对一些控件的用法还不是很熟悉. 这段时间将会记录一些在工作中遇到的坎坷以及对应的解决办法,写出来与大家分享并希望大神提出更好解决方法来 ...
- bootstrap 中的 iCheck 全选反选功能的实现
喜欢bootstrap 风格的同学应该知道,iCheck的样式还是很好看的. 官网: http://www.bootcss.com/p/icheck/ 进入正题,iCheck提供了一些方法,可以进行全 ...
- 表单javascript checkbox全选 反选 全不选
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- JavaScript 实现全选 / 反选功能
JavaScript 实现全选 / 反选功能 版权声明:未经授权,内容严禁转载! 构建主体界面 编写 HTML 代码 和 CSS 代码,设计主题界面 <style> #user { wid ...
- jquery 书写全选反选功能
书写一个后台管理中用到的全选反选功能.代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- vue中的checkbox全选和反选
前几天有个博客园的朋友问小颖,小颖之前写的vue2.0在table中实现全选和反选 .Vue.js实现checkbox的全选和反选,为什么他将里面的js复制下来,但是实现不了全选和反选.小颖当时看他 ...
- jquery、js操作checkbox全选反选
全选反选checkbox在实际应用中比较常见,本文有个不错的示例,大家可以参考下 操作checkbox,全选反选//全选 function checkAll() { $('input[name=&qu ...
- JS全选反选功能
总选框:<input type="checkbox" class="all" name="all"> 子选框: <inpu ...
- jquery实现全选/反选功能
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...
随机推荐
- cf 323A A. Black-and-White Cube 立体构造
A. Black-and-White Cube time limit per test 1 second memory limit per test 256 megabytes input stand ...
- hdu3709(数位dp)
求区间[l,r]内有多少个数的满足: 选一个位为中点,是的左边的数到该位的距离等于右边的位到该位的距离. 比如4139 选择3位中点, 那么左边的距离是 4 * 2 + 1 * 1 , 右边的距 ...
- JDBC连接数据库和释放连接
用久了hibernate现在对于JDBC是怎么实现数据库的连接和释放,所以特地总结下关于JDBC的知识,目的是用于提醒自己很多Java的基础知识需要健全. package com.ssh.action ...
- 怎么样excel其产生的条形码(10分钟的时间excel)从而出现了条形码
现在快递行业.京东购物,这样一来,使用条码管理,因此,如何在你的excel其中还生产商品条码管理它?其实很easy,4步骤学会!10分钟搞定. 1.从网址如下.下载字体, 2.双击安装字体. 3,在e ...
- bellman_ford算法
给定一个源点,求最短路径,那么存在以源点为根的最短路径树因为最短路径具有最优子结构的性质,所以我们可以先求出树的第一层,然后再求出树的第二层,以此类推bellman_ford算法就是按照这种思想求最短 ...
- JavaScript权威指南科03章 种类、值和变量(1)
种类.值和变量 数据类型分类: 基本类型(primitive type):数位 弦 布尔值 null undefined 对象类型(object type): 对象是属性的集合,每一个属性都由&quo ...
- Swift基础--使用TableViewController自己定义列表
首先建立一个swift项目,把storyboard的内容删掉,加入一个Navigation Controller.然后设置storyboard相应界面的class,在Navigation Contro ...
- ORACLE 11G没有备份文件參数文件在异机通过rman备份恢复找回被误删的数据
背景: 同事误删除线上数据.所以须要从备份中找回数据恢复. 真实屋漏偏逢连夜雨.船迟又遇打头风.前两天备份的磁盘坏块,如今仅仅有rman全备的.bak文件,没有控制文件和參数文件,所 ...
- 【小白的java成长系列】——顶级类Object源代码分析
首先来说一下api文档使用,api这个词对有一定开发经验的java编程人员来说是非常喜爱的~ java当然也提供了api开发文档,下载地址:http://www.oracle.com/technetw ...
- 【Nginx】epoll事件驱动模块
Linux 2.4之前的内核版本号,Nginx事件驱动的方法是使用poll.select功能.过程必须等待一个事件发生在连接上(接收数据)时间,部连接都告诉内核,由内核找出哪些连接上有事件发生.因为须 ...