0

我有两个表单 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 中添加一行,但是当添加第二行时,之前添加的行会丢失。

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

谢谢你。

4

1 回答 1

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;

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

于 2013-02-07T10:22:20.707 回答