2016-09-22 48 views
3

正在搜索高和低的答案如何做到這一點!我基本上有26個名爲comboBox1 - comboBox26的組合框,並且想要使用for循環將項添加到每個框,所以我需要將該組合框稱爲字符串。有點不好解釋,這是我迄今爲止的代碼;將項目添加到組合框,同時通過c#Windows窗體中的字符串引用組合框名稱

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

所以在循環後,所有26個組合框都應該填充該字符串數組。這和我嘗試過的其他東西都會拋出一個錯誤,而且似乎無法找到答案,任何幫助都將非常棒!

感謝

回答

4

使用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

+0

這是完美的,非常感謝你! –

+0

很高興幫助...乾杯! –

0

您可以使用此:

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

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