C#中如何统计已选中CheckBox的取值总和
问题根源
你的代码存在赋值逻辑错误:每个if判断到CheckBox选中时,执行的是Totalchecked = 5的覆盖赋值操作,而非累加操作。
哪怕4个CheckBox全部选中,最后一个生效的if语句(对应CheckBox4的判断)依然会把Totalchecked的值直接覆盖为5,最终输出自然只能得到5,无法得到预期的20。
修复方案
把所有if代码块内的赋值逻辑改为累加即可,修改后代码如下:
//CheckCheckedCheckboxes int Totalchecked = 0; if (CheckBox1.Checked) { Totalchecked += 5; } if (CheckBox2.Checked) { Totalchecked += 5; } if (CheckBox3.Checked) { Totalchecked += 5; } if (CheckBox4.Checked) { Totalchecked += 5; } var totalselected = Totalchecked ; labelHeader.Text = Convert.ToString(totalselected);
优化建议
如果后续要扩展CheckBox数量,不需要重复写多个if判断,可以通过遍历控件容器的方式批量计算,简化代码:
int Totalchecked = 0; // 此处遍历你放置CheckBox的父容器,比如Panel、Form等 foreach (Control control in this.Controls) { if (control is CheckBox checkBox && checkBox.Checked) { Totalchecked += 5; } } labelHeader.Text = Totalchecked.ToString();
内容的提问来源于stack exchange,提问作者Je Boy Abi
相关产品推荐
相关产品推荐

