0

我需要简单的逻辑迭代,但很多项目......这是我的代码

        byte[] nc1 = new byte[40];
        nc1 = ChekSt(36, "192.168.2.55", 38, 40);

        //I need to iterate 40 times so my 40 checkbox can be updated

        switch (nc1[0])
        {
            case 1: checkBox1.Checked = false; break;
            case 2: checkBox1.Checked = true; checkBox1.CheckState = CheckState.Indeterminate; break;
            case 3: checkBox1.Checked = true; checkBox1.CheckState = CheckState.Checked; break;
        }

我有 checkBox1、checkBox2、checkBox3... 到 checkBox40

我需要类似的东西checkBox(i).checked = true;

所以不必编写我的代码 40 次

任何人有想法...?

4

2 回答 2

1

将复选框放在数组或列表中,以便您可以以基于集合的方式操作它们。

例如

var list = new List<CheckBox>();
list.Add(checkBox1);
list.Add(checkBox2);
list.Add(checkBox3);

list[2].Checked = true;
于 2012-07-24T09:20:09.770 回答
1

尝试使用此代码

foreach (CheckBox checkbox in yourPanelContainer.Controls.OfType<CheckBox>())
{
   checkbox.Checked = true;
}
于 2012-07-24T09:24:47.957 回答