我创建了一个UserControl,它有一张图片和两个标签: 标签 labelUsername
我还创建了一个DataSet和DataTable,它从SQL CE数据库中获取数据。这个位工作正常,因为我设法循环遍历所有DataTable行并在MessageBox中显示信息。
现在,我想在DataLable中的所有行中显示FlowLayoutPanel中的UserControl,并使用DataTable中的Name和Username值填充这两个标签。这是我陷入困境的地方,因为我不知道在UserControl中编写什么代码以及在包含FlowLayoutPanel的Form中编码的内容。
有人可以帮帮我吗?
答案 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);
}
}