1

我创建了一个包含 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;
        }
4

1 回答 1

3

列索引从零开始,因此如果您有六列,则最高索引为五。

快速解决:

if (e.ColumnIndex == 5)
{
  // etc
}
于 2012-05-06T13:42:39.547 回答