0

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

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

现在,我想在 FlowLayoutPanel 中为 DataTable 中的所有行显示 UserControl,并使用 DataTable 中的 Name 和 Username 值填充两个标签。这是我卡住的地方,因为我不知道在 UserControl 中编码什么以及在包含 FlowLayoutPanel 的表单中编码什么。

有人可以帮帮我吗?

4

1 回答 1

1

您将在您的 Form 和 UserControl 中对此进行编码。

在您的 UserControl 中,在属性或方法中公开两个标签中的每一个的 Text 属性。如果您选择一个属性,您的 Label labelUsername 可能看起来像这样:

public string Username {
    set { labelUsername.Text = value; }
}

在您的表单中,循环遍历 DataSet 中所有 DataTables 中的所有 DataRows,并为每个 DataRow 创建一个 UserControl 实例并将每个实例添加到 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);
    }
}
于 2012-09-25T20:16:20.173 回答