You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:06:03