C# 计算当前复选框的数量并以c输出该数字#

C# 计算当前复选框的数量并以c输出该数字#,c#,checkbox,C#,Checkbox,我试图计算组框中当前选中的“复选框”的数目。我有10个复选框 我一直在尝试一些代码,但如果我勾选了复选框,我只能设法向上计数,而不是相反。因此,它只是相加(而不是每次+1) 那么,我必须采取什么方法来计算当前(不是递增)复选框的数量呢?多谢各位 int checkedBoxes = 0; private void checkBox1_Click(object sender, EventArgs e) { CheckBox check = (CheckBox)sender; bo

我试图计算组框中当前选中的“复选框”的数目。我有10个复选框

我一直在尝试一些代码,但如果我勾选了复选框,我只能设法向上计数,而不是相反。因此,它只是相加(而不是每次+1)

那么,我必须采取什么方法来计算当前(不是递增)复选框的数量呢?多谢各位

int checkedBoxes = 0;

private void checkBox1_Click(object sender, EventArgs e)
{
    CheckBox check = (CheckBox)sender;
    bool result = check.Checked;

    if (result == true)
    {
        btnDone.Enabled = true;
    }

    foreach (Control c in grpToppings.Controls)
    {
        CheckBox cb = c as CheckBox;
        if (cb != null && cb.Checked)
        {
            checkedBoxes += 1;
            int how_many = checkedBoxes;
        }
    }
}

private void btnDone_Click(object sender, EventArgs e)
{
    string name = textbox_orderName.Text;
    MessageBox.Show("\nhow many: " + checkedBoxes, "It is done",
    MessageBoxButtons.OK);
}

当您再次循环所有子控件时,只需在事件中移动
复选框的分配,然后单击
复选框1,计数应重置

int checkedBoxes;

private void checkBox1_Click(object sender, EventArgs e)
{
    checkedBoxes = 0;
    CheckBox check = (CheckBox)sender;
    bool result = check.Checked;

    if (result == true)
    {
        btnDone.Enabled = true;
    }

    foreach (Control c in grpToppings.Controls)
    {
        CheckBox cb = c as CheckBox;
        if (cb != null && cb.Checked)
        {
            checkedBoxes += 1;
            int how_many = checkedBoxes;
        }
    }
}

请把你的代码格式化得更容易阅读——现在到处都是。如果在IDE(Visual Studio?)中是这样的,您应该能够要求IDE为您格式化它。。。然后复制/粘贴到堆栈溢出中,选择所有代码并按Ctrl-K。下一步:与其在单击方法中计数,为什么不在按下“完成”按钮时计数?不需要字段…简单明了:
int how_many=grptopings.Controls.OfType().Count(cb=>cb.Checked)在for循环之前,您没有将计数器复选框重置为0。