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=& ...
随机推荐
- mmc生产任务分配问题
mmc生产任务分配问题,本题目简单.
- Gitclient使用
1 首次安装gitclient msysgit watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3h4NTA0NjU5OTg3/font/5a6L5L2T/ ...
- Codeforces 32E Hide-and-Seek 乞讨2关于镜面反射点 计算几何
主题链接:点击打开链接 必须指出的是,反射镜和2个人共线是不是障碍,但根据该壁其他情况 #include<cstdio> #include<iostream> #include ...
- 查看文章strncpy()功能更好的文章
strncpy()功能 原型:extern char *strncpy(char *dest, char *src, int n); 使用方法:#include <string.h> ...
- 重新想象 Windows 8 Store Apps (6) - 控件之媒体控件: Image, MediaElement
原文:重新想象 Windows 8 Store Apps (6) - 控件之媒体控件: Image, MediaElement [源码下载] 重新想象 Windows 8 Store Apps (6) ...
- [思考] hdu 4811 Ball
意甲冠军: 有三种颜色的小珠,每种颜色的量R,Y,B 转球进入桌面成序,有多少种不同的颜色分别砍下的球在球门前+有多少身后球不同的颜色 问:最大的总比分值 思考: 球和后面的球先放好.剩下的就放中间了 ...
- Test SRM Level Three: LargestCircle, Brute Force
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=3005&rd=5858 思路: 如果直接用Brute F ...
- SDL 简单入门学习
write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 概要 实际学习使用SDL创建窗体,并绘制图形. 前言 今天想要做一个简单的demo ...
- Caching-缓存架构与源码分析
Caching-缓存架构与源码分析 首先奉献caching的开源地址[微软源码] 1.工程架构 为了提高程序效率,我们经常将一些不频繁修改,但是使用了还很大的数据进行缓存.尤其是互联网产品,缓存可以说 ...
- Spring Boot 基础
Spring Boot 基础 Spring Boot 项目(参考1) 提供了一个类似ASP.NET MVC的默认模板一样的标准样板,直接集成了一系列的组件并使用了默认的配置.使用Spring Boot ...