使用for循环C#逐步改变多个按钮

时间:2014-04-05 12:06:44

标签: c# button for-loop

我试图做这样的事情:

list<int> listName = new list<int>();

for(int i; i <= listName[0];i++)
{
    button(i).Enabled = false;
}

...禁用从1到i的所有按钮。 这样做的最佳方式是什么?

感谢。

1 个答案:

答案 0 :(得分:2)

有几种方法可以批量修改控件。

示例1(将它们全部放入列表中)

List<Button> buttonsToDisable = new List<Button>()
{
    button1, 
    button2
};

foreach (var button in buttonsToDisable)
{
    button.Enabled = false;
}

示例2(将它们放在同一个容器中,然后迭代该容器中的控件)

foreach(var button in groupBox1.Controls.OfType<Button>())
{
    button.Enabled = false;
}

示例3(使用ID修改控件)

List<int> buttonSubfixId = new List<int>()
{
    1,
    2
};

foreach (var id in buttonSubfixId)
{
    var controls = this.Controls.Find("button" + id.ToString(), true).OfType<Button>();

    if (controls.Count()>0)
    {
        foreach (var button in controls)
        {
            button.Enabled = false;
        }
    }
}