【问题标题】:How to populate more than one controls via DataSet?如何通过 DataSet 填充多个控件?
【发布时间】:2012-06-29 20:28:03
【问题描述】:

我有 5 个 ComboBoxes,并希望用相同的 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..”的定义。

请帮忙。

【问题讨论】:

    标签: c# winforms combobox dataset


    【解决方案1】:

    您必须将它们转换为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;

    【讨论】:

      【解决方案2】:

      您必须将其转换为 ComboBox,如下所示:

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

      【讨论】:

        猜你喜欢
        • 2018-03-16
        • 1970-01-01
        • 1970-01-01
        • 2011-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-05
        相关资源
        最近更新 更多