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' には 'DataSource' の定義が含まれていません...
エラー 2: 'System.Windows.Forms.Control' には 'DisplayMember.. の定義が含まれていません。

助けてください。

4

2 に答える 2

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;

于 2012-06-28T10:30:52.900 に答える
1

次のように、ComboBox にキャストする必要があります。

foreach (Control c in panPrev.Controls)
{
    if (c is ComboBox) 
    {
        (c as ComboBox).DataSource = ds01.Tables[0];
        (c as ComboBox).DisplayMember = "cars";
    }
}
于 2012-06-28T10:30:23.170 に答える