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

时间:2013-02-07 09:40:17

标签: c# datagridview

我在两个表单上都有两个表单Form1(DGV1)和Form2(DGV2)以及Datagridview控件。

在Form1上有一个指向Form2的按钮链接,用户可以在其中向Form1 datagridview(DGV1)添加行 ..在Form2 Datagridview中,第一列中有一个复选框,用户一次只能选择一行。因此Form2上有两个按钮1)完成2)添加项目

当用户通过逐个选择行来单击“添加项目”时,必须将行添加到Form1上的datagridview中,并且当单击“完成”按钮时,应显示表单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中添加一行,但是当添加第二行时,之前添加的行将丢失。

您能否提出解决此问题的方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

您要为父网格中的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;

这样您就可以添加新行并使用值填充它。从你给出的代码不清楚为什么第一行丢失,所以也许我需要更多的信息。