2015-08-15 49 views
0

我的程序中有56個組合框,我需要用相同的信息填充它們。我找到的fastes方式是創建一個用於填充組合框的私有函數。我放了56次相同的功能。如何用循環或東西填充56組合框

但我的問題是......我可以做一個循環來填充這個56 comboBox?

+0

回答你的問題:是的,你可以做一個循環來填充你的組合框。 C#語言提供了幾個關鍵字,允許您創建循環,例如'for','foreach','while'等... – elgonzo

回答

0

假設這個問題是關於Windows窗體的。最好的方法是使用相同的數據來填充所有ComboBox控件的類似命名約定。用for循環中的項填充它們,在添加數據之前向要查找的控件添加不同的後綴。

// Lets say you have 56 ComboBox controls with names like : cbMyComboBox_1, cbMyComboBox_2, ..., cbMyComboBox_56 
for (int i = 1; i <= 56; i++) 
{ 
    ComboBox comboBox = (ComboBox)this.Controls.Find 
     (string.Format("cbMyComboBox_{0}", i), true)[0]; 
    ComboBoxFill(comboBox); 
} 

private void ComboBoxFill(ComboBox comboBox) 
{ 
    // Fill that ComboBox with data here 
} 
+0

謝謝!!!!!它的工作原理 –

+0

@Oriol Lopez沒問題。使用Controls.Find方法將searchAllChildren標誌設置爲true,可以確保即使它嵌套在panel,groupBox或任何其他控件中,也可以找到控件。 – msmolcic

-2

嘗試向所有56個組合框添加相同的類,然後創建一個函數來填充,然後如下所示: $(「。class」)。html(options的值);

0

當然可以。

foreach (var c in Controls) 
{ 
    if (c is ComboBox) 
     ((ComboBox)c).Text = "I'm a combobox~"; 
} 
+0

我使用您的代碼但它不起作用 foreach(var c in Controls ) { if(c is ComboBox)c = Fill(c); } } –

+0

@OriolLopez你可以把'Fill()'方法放在這裏嗎? –

+0

是的,但參數「c」不識別爲ComboBox –