我创建了一个包含6列的网格,所有这些都是字符串类型现在我的要求是当用户双击第6列时,将打开一个新表单并从id,name变量中返回所选记录中的值。
正在打开表单并获取值,但在执行以下行时
grdItemDetail.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = id;
它没有更新字段给出错误并关闭如何更新此列的值请帮助。完整代码如下。
private void grdItemDetail_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 6)
{
frmWarehouseList frmWarehouseList = new frmWarehouseList();
frmWarehouseList.ShowDialog();
string id = frmWarehouseList.SelectedWarehouseID;
string name = frmWarehouseList.SelectedWarehouseName;
//MessageBox.Show(grdItemDetail.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
grdItemDetail.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = id;
}
答案 0 :(得分:3)
列索引基于零,因此如果您有六列,则最高索引为五。
快速修复:
if (e.ColumnIndex == 5)
{
// etc
}