2012-06-28 59 views
0

我有5個ComboBox,並想在同一數據集來填充每個人如何通過DataSet填充多個控件?

foreach (Control c in panPrev.Controls) 
{ 
    if ((string)c.Tag == "cb") //these are ComboBoxes 
    { 
     c.DataSource = ds01.Tables[0]; 
     c.DisplayMember = "cars"; 
    } 
} 

錯誤1:「System.Windows.Forms.Control的」不包含「數據源」的定義...
錯誤2:'System.Windows.Forms.Control'不包含'DisplayMember'的定義。

請幫忙。

回答

4

你必須將它們轉換成ComboBox,反正我會用Enumerable.OfType方法:

var combos = panPrev.Controls.OfType<ComboBox>(); 
foreach (var combo in combos) 
{ 
    combo.DataSource = ds01.Tables[0]; 
    combo.DisplayMember = "cars"; 
} 

Enumerable.OfType過濾按類型進行控制並相應地投射它們。請注意,您需要添加using System.Linq;

+0

好的,很明顯。謝謝。 – Buena

1

你必須將它轉換爲組合框,這樣的事情:

foreach (Control c in panPrev.Controls) 
{ 
    if (c is ComboBox) 
    { 
     (c as ComboBox).DataSource = ds01.Tables[0]; 
     (c as ComboBox).DisplayMember = "cars"; 
    } 
} 
+0

謝謝安東尼奧。解決了。 – Buena