如何在C#中使用循环迭代所有ComboBoxes控件?

时间:2014-05-16 15:49:27

标签: c# for-loop controls

我在C#中的winform(例如10)上有一些组合框,名为:comboBox1,coboBox2和comboBoxN。如何在for循环中访问所有这些:

for(int i = 0; i < 10; i++)
{
    comboBox[i].text = "Hello world";
}

3 个答案:

答案 0 :(得分:2)

您可以使用OfType方法

var comboBoxes =  this.Controls
                  .OfType<ComboBox>()
                  .Where(x => x.Name.StartsWith("comboBox"));

foreach(var cmbBox in comboBoxes)
{
    cmbBox.Text = "Hello world";
}

答案 1 :(得分:2)

您可以通过这种形式访问所有组合框(假设this是表单):

     List<ComboBox> comboBoxList = this.Controls.OfType<ComboBox>();

然后你只需要迭代它们

     foreach (ComboBox comboBox in comboBoxList)
     {
        comboBox.Text = "Hello world!";
     }

答案 2 :(得分:1)

表单有一个Controls property,它返回所有控件的集合以及can be indexed by the name of the control

for(int i = 0; i < 10; i++)
{
    var comboBox = (ComboBox)this.Controls["comboBox" + i.ToString()];
    comboBox.text = "Hello world";
}