如何根据从数据库中获得的结果动态添加面板和一些控件。
我想在面板中显示这个datagridview的结果,但是面板应该根据结果动态地添加到彼此的旁边。例如,我在datagridview中有3个结果,所以应该动态添加3个面板。敬请指教。
发布于 2018-08-13 01:48:42
您可以使用SqlConnection
执行SELECT
命令并获取所需的行,然后为每一行添加一个包含该行信息的自定义面板。
我还建议您使用FlowLayoutPanel
,这样它就可以为您处理间距/位置。
在你的Form_Load
中
var conn = new SqlConnection("Your connection informations here");
conn.Open();
var command = new SqlCommand("Select * from YourTable", conn);
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
// Pass the useful informations to your panel
var pnl = new MyCustomPanel(reader["Id"].ToString(), reader["Property_Type1"].ToString());
flowLayoutPanel1.Controls.Add(pnl);
}
}
conn.Close();
您的自定义控件的构造器应该类似于这样,您可以为每一行设置面板控件的值:
public MyCustomPanel(string id, string propertyType1)
{
txtId.Text = id;
txtPropertyType1.Text = propertyType1;
}
https://stackoverflow.com/questions/51811087
复制相似问题