将Datagridview行从一个网格添加到另一个网格

本文关键字:网格 一个 添加 另一个 Datagridview | 更新日期: 2023-09-27 17:58:12

我有两个窗体Form1(DGV1)和Form2(DGV2),两个窗体上都有Datagridview控件。

在Form1上有一个到Form2的按钮链接,用户可以在其中向Form1数据网格视图(DGV1)添加行..在Form2 Datagridview中,第一列有一个复选框,用户一次只能选择一行。所以表格上有两个按钮1)完成2)添加项目

当用户通过依次选择行来单击"添加项目"时,这些行必须添加到Form1上的数据网格视图中,并且当单击"完成"按钮时,Form 1应与添加的所有行一起显示。

int index = objQM.gvItemDetails.Rows.Add();
int Sno = index + 1;
string Desc = gvInventory.Rows[RowIndex].Cells[6].Value.ToString();
int Sellqty = LoadSellQty();
 decimal UnitCost = Convert.ToDecimal(gvInventory.Rows[RowIndex].Cells[8].Value.ToString());
 decimal Amount = LoadSellQty() * UnitCost;
 objQM.gvItemDetails.Rows.Insert(index,false, Sno, Desc, Sellqty, UnitCost, Amount);

我可以在Form1数据网格视图中添加一行,但当添加第二行时,之前添加的行将丢失。

你能提出解决这个问题的方法吗。

谢谢。

将Datagridview行从一个网格添加到另一个网格

您正在为gvInventory中选择的每一行添加父网格中的两行(这是想要的工作方式吗?),如果不是,请尝试以下操作:

int index = objQM.gvItemDetails.Rows.Add();
DataGridViewRow row = objQM.gvItemDetails.Rows[index]; //here you get a reference to added row
row.Cells[0] = false;
row.Cells[1] = index + 1; //old Sno
row.Cells[2] = gvInventory.Rows[RowIndex].Cells[6].Value.ToString();
row.Cells[3] = LoadSellQty();
row.Cells[4] = Convert.ToDecimal(gvInventory.Rows[RowIndex].Cells[8].Value.ToString());
row.Cells[5] = LoadSellQty() * UnitCost;

通过这种方式,您可以添加新行并用值填充它。根据您给出的代码,不清楚第一行丢失的原因,所以也许我需要更多信息。

相关文章: