从数据表生成的自定义控件

时间:2011-04-09 10:56:34

标签: c# winforms

我需要一个功能帮助,我在数据集表中有数据。 对于每一行,我需要使用一些数据创建控件,并且所有这些控件都必须采用流布局。我希望从中进行自定义控制,它可以绑定到数据源,如数据集。

更多信息: 我已经制作了自定义控件

  [System.ComponentModel.ComplexBindingProperties("DataSource")]
        public partial class UserControl1 : System.Windows.Forms.FlowLayoutPanel
        {
            public object DataSource
            {
                get { return datatable; }
                set 
                { datatable = (List<String>)value; 
                  MakeControls(); 
                 }
            }

    private void MakeControls()
    {
        if (datatable == null)
            return;

        this.SuspendLayout();
        this.Controls.Clear();
        foreach(String str in datatable)
        {
            GroupBox gb = new GroupBox();
            gb.Text = str;

            this.Controls.Add(gb);
        }
        this.ResumeLayout();
    }
        }

我不知道这就够了。因此,Datasource只是具有在设置时触发的方法的属性。

1 个答案:

答案 0 :(得分:1)

您可以遍历数据集表中的行,为每个行构建一个新控件,并将其添加到表单上的FlowLayoutPanel。

foreach (DataRow dr in ds.Tables[0].Rows)
{
    Textbox t = new TextBox(); //Or whatever control you want
    t.Text = dr.Value; // NB: Not actual code, I'm not at my IDE
    flowPanel.Controls.Add(t);
}