我有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'不包含'DataSource'的定义...
错误2:'System.Windows.Forms.Control'不包含'DisplayMember ..
请帮助。
答案 0 :(得分: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;
。
答案 1 :(得分:1)
你必须把它投射到ComboBox,如下所示:
foreach (Control c in panPrev.Controls)
{
if (c is ComboBox)
{
(c as ComboBox).DataSource = ds01.Tables[0];
(c as ComboBox).DisplayMember = "cars";
}
}