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

本文关键字:自定义控件 数据表 | 更新日期: 2023-09-27 17:49:27

我需要一个功能的帮助,我有数据集表中的数据。对于每一行,我需要用一些数据创建控件,所有这些控件必须在流布局。我想从这里创建自定义控件,它可以绑定到数据源,比如dataset。

更多信息:我已经创建了自定义控件

  [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是唯一的属性,它的方法在设置时被触发。

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

您可以循环遍历数据集表中的行,为每一行构建一个新控件,并将其添加到窗体上的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);
}