将项目添加到组合框,同时通过c#Windows窗体中的字符串引用组合框名称

时间:2016-09-22 17:41:16

标签: c# .net winforms

一直在寻找如何做到这一点的答案!我基本上有26个组合框名为comboBox1 - comboBox26,并且想要使用for循环向每个框添加项目,所以我需要将comboBox称为字符串。解释不好,这是我到目前为止的代码;

for (int n = 1; n <= 26; n++)
{
      this.["comboBox"].Text.AddRange(new string[] 
             {"First Item", "second item", "third", "fourth", "fifth"}); 
}

所以在循环之后,应该用该字符串数组填充所有26个组合框。这和我尝试的其他所有东西都会抛出一个错误,似乎无法找到答案,任何帮助都会很棒!

感谢

2 个答案:

答案 0 :(得分:5)

使用controls.Find

for (int n = 1; n <= 26; n++)
{
    ComboBox c = Controls.Find("comboBox_"+n.ToString(),true)[0] as ComboBox;
    c.Items.AddRange(new string[] {"First Item", "second item", "third", "fourth", "fifth"});
}

这假设您已将组合框comboBox_0命名为comboBox_25

答案 1 :(得分:0)

你可以使用这个:

var matches = this.Controls.Find("cmbname", true);

ComboBox cmb = (ComboBox)this.Controls.Find("cmbname" + i, false).FirstOrDefault();