gpt4 book ai didi

c# - 如何在 WinForms 中更新 DataGridView

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:24 27 4
gpt4 key购买 nike

我必须用产品更新 DataGridView。这些产品按类别分组。对于每个类别,我都制作了一个 Panel。单击该 Panel 时,我想显示一个 Panel 列表,其中包含来自单击的 Panel 的产品。此外,当我从列表中单击一个 Panel 时,我希望它被插入到 DataGridView 中。这种情况可能吗?

屏幕截图:enter image description here

截图说明:

-类别在左上角。

-按下类别时,左侧会显示数据库记录列表。

-按下记录时,它会绑定(bind)到 datagridview。

最佳答案

我不明白 GUI 会怎样。屏幕截图将帮助我们更好。不确定单击面板是否是让用户打开某些内容的理想方式。希望面板有边框。

假设每个面板都标记了类别对象。

private void button1_Click(object sender, EventArgs e)
{
List<Category> lstCategory = Manager.GetCategories();

int i = 5, j = 5;
foreach (Category cat in lstCategory)
{
Label label = new Label();
label.Text = cat.Name;
Panel panel = new Panel();
panel.Tag = cat;
panel.Controls.Add(label);
//if you already have panel created for categories, then start from here..
panel.Click += ((s, r) =>
{
List<Product> lstProduct = Manager.GetProducts((Category)panel.Tag);

int x = 5, y = 5;
foreach (Product product in lstProduct)
{
var pnl = new Panel();
pnl.BorderStyle = BorderStyle.Fixed3D;
pnl.Size = new Size(15, 15);
pnl.Location = new Point(20 + x, 20 + y); //position it properly.
this.Controls.Add(pnl);
pnl.Tag = product;
Label lbl = new Label();
lbl.Text = product.Name;
pnl.Controls.Add(lbl);
pnl.Click += ((p, q) =>
{
dataGridView1.Rows.Add(//according to pnl.Tag values

});
}
});

panel.BorderStyle = BorderStyle.FixedSingle;
panel.Size = new Size(15, 15);
panel.Location = new Point(20 + i, 20 + j); //position it properly.
this.Controls.Add(panel);

}
}

如果需要,您可以将必要的东西作为参数传递,从而将创建面板的代码重构为一个方法。

关于c# - 如何在 WinForms 中更新 DataGridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8926982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com