C# 未处理无效的强制转换异常

C# 未处理无效的强制转换异常,c#,datagridview,C#,Datagridview,我想尝试调用函数内的事件,我想调用的事件是DataGridViewCellEventArgs,但它在函数内。但是,当我尝试下面的代码时,出现了以下错误:无法将类型为“System.Windows.Forms.MouseEventArgs”的对象强制转换为类型为“System.Windows.Forms.DataGridViewCellEventArgs”。 代码如下: private void UpdateQuantityDataGridView(object sender, EventArgs

我想尝试调用函数内的事件,我想调用的事件是
DataGridViewCellEventArgs
,但它在函数内。但是,当我尝试下面的代码时,出现了以下错误:
无法将类型为“System.Windows.Forms.MouseEventArgs”的对象强制转换为类型为“System.Windows.Forms.DataGridViewCellEventArgs”。

代码如下:

private void UpdateQuantityDataGridView(object sender, EventArgs e)
        {

           (...Other codes)
           var _productCode = dataGridView1["Product Code", ((DataGridViewCellEventArgs)e).RowIndex].Value;
           (...Other codes)

        }

当用户在
DataGridView
中编辑完数据并按下“OK”按钮时,我调用上面的函数,上面的函数是更新用户对数据库以及DataGridView中所做的任何更改,您试图将
EventArgs(父类型)
转换为
DataGridViewCellEventArgs(子类型)
。在这种情况下,这是不安全的。您可以创建一个新的
DataGridViewCellEventArgs

var _productCode = dataGridView1["Product Code",(new DataGridViewCellEventArgs(columnIndex, rowIndex)).RowIndex].Value;

这里创建了一个新的
DataGridViewCellEventArgs
。由于它是单元格相关操作的事件参数,因此需要
columnIndex
rowIndex
来定位单元格。

什么是colIndex和rowIndex sir?