在 GroupBox 中选中了多少个 CheckBox?

Miz*_*chi 0 c# winforms

我正在制作一个程序,它必须计算CheckBox检查了多少控件,仅在GroupBox.

我尝试了很多不同的方法,但我无法让它工作。

这怎么可能?

// This is one of the many things I tried...        
public CheckBox rNum;
//This method is used on FormLoad.
public void CreateBoxes()
{
    for (int i = 0; i < 36; i++)
    {
        rNum = new CheckBox();
        rNum.Text = i.ToString();

        //CheckBoxes added to flowLayoutPanel.
        flw.Controls.Add(rNum);
    }   
}

public int count;          
//This method is used on Button Click
public void CountIt()
{
    foreach (CheckBox box in groupBox.Controls.OfType<CheckBox>())
    {
        if (box.Checked)
        {
            count++;
        }
    }    
    MessageBox.Show(count.ToString());
}
Run Code Online (Sandbox Code Playgroud)

Rez*_*aei 5

您可以使用这样的 linq 查询:

var count = flw.Controls.OfType<CheckBox>().Count(x=>x.Checked);
Run Code Online (Sandbox Code Playgroud)

它返回CheckBoxflw 中被检查的控件计数。