CheckBox控件
常用属性:Text、Name、Checked、CheckState、ThreeState
常用事件:CheckedChanged、CheckStateChanged
知识点1:
Checked:表示控件是否选中
CheckState:表示控件选中的状态,有三种状态,分别是:checked,unchecked,indeterminate
而且CheckState要和ThreeState属性组合使用
ThreeState属性控制CheckBox显示三种状态还是两种状态。
CheckBox的三种状态如下:
知识点2:
heckedChanged和CheckStateChanged事件功能基本相同,但是heckedChanged相比CheckStateChanged先发生;
知识点3:
CheckBox分组使用时,最好放入panel组件中使用,方便按组遍历;
实现如下功能:
public partial class FormCheckBox : Form { public FormCheckBox() { InitializeComponent(); this.Load += FormCheckBox_Load; } //分别对每组CheckBox注册CheckedChanged事件 private void FormCheckBox_Load(object sender, EventArgs e) { foreach (Control item in panelIntresting.Controls) { ((CheckBox)item).CheckedChanged += FormCheckBox_CheckedChanged; } foreach (Control item in panelRoles.Controls) { ((CheckBox)item).CheckedChanged += FormCheckBox_CheckedChanged1; } } List<string> listIntresting = new List<string>(); List<string> listRols = new List<string>(); private void FormCheckBox_CheckedChanged1(object sender, EventArgs e) { CheckBox c = sender as CheckBox; if (c.Checked) { listRols.Add(c.Text); } else { listRols.Remove(c.Text); } } private void FormCheckBox_CheckedChanged(object sender, EventArgs e) { CheckBox c = sender as CheckBox; if (c.Checked) { listIntresting.Add(c.Text); } else { listIntresting.Remove(c.Text); } } private void btnSubmit_Click(object sender, EventArgs e) { string strState = cbNomal.Checked ? "正常": "不正常"; string strIntresting = string.Join(",", listIntresting); string strRols = string.Join(",", listRols); MessageBox.Show($"状态:{strState};兴趣:{strIntresting};角色:{strRols};"); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?