对于每个DataTable,将UserControl添加到FlowLayoutPanel

时间:2012-09-25 19:30:22

标签: c# user-controls datatable dataset flowlayoutpanel

我创建了一个UserControl,它有一张图片和两个标签: 标签 labelUsername

我还创建了一个DataSet和DataTable,它从SQL CE数据库中获取数据。这个位工作正常,因为我设法循环遍历所有DataTable行并在MessageBox中显示信息。

现在,我想在DataLable中的所有行中显示FlowLayoutPanel中的UserControl,并使用DataTable中的Name和Username值填充这两个标签。这是我陷入困境的地方,因为我不知道在UserControl中编写什么代码以及在包含FlowLayoutPanel的Form中编码的内容。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

您可以在表单和UserControl中对此进行编码。

在UserControl中,在属性或方法中公开两个标签中的每个标签的Text属性。如果选择属性,对于Label labelUsername:

,它可能看起来像这样
public string Username {
    set { labelUsername.Text = value; }
}

在Form中循环遍历DataSet中所有DataTable中的所有DataRows,并为每个DataRow创建UserControl的实例,并将每个DataControl添加到FlowLayoutPanel。使用DataRows中的相应列值来设置UserControl Label值:

foreach (DataTable dt in ds.Tables) {
    foreach (DataRow row in dt.Rows) {
        var uc = new YourUserControl { Username = row["usernameColumn"].ToString(), 
                                       Name = row["nameColumn"].ToString() };
        flowLayoutPanel1.Controls.Add(uc);
    }
}