一直在寻找如何做到这一点的答案!我基本上有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个组合框。这和我尝试的其他所有东西都会抛出一个错误,似乎无法找到答案,任何帮助都会很棒!
感谢
答案 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();