我正在尝试计算组框中当前选中的“选中框”的数量。我有 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);
}

最佳答案

只需在 checkedBoxes 事件中移动 checkBox1_Click 的分配,因为您再次循环所有子控件并且应重置计数。

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;
        }
    }
}

关于c# - 计算当前选中框的数量并在c#中输出该数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39463051/

10-12 00:00
查看更多