2013-09-27 31 views
0

我想尝试调用函数内部的事件,并且我想调用的事件是DataGridViewCellEventArgs,但它在函数内部。但是,当我尝试下面的代码,我得到这个错误:Unable to cast object of type 'System.Windows.Forms.MouseEventArgs' to type 'System.Windows.Forms.DataGridViewCellEventArgs'.Invalid Cast Exception was unhandled

下面是代码:

private void UpdateQuantityDataGridView(object sender, EventArgs e) 
     { 

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

     } 

我拨打以上功能,当用户完成编辑数据DataGridView,然后按“确定”按钮,上面的功能是更新用户对数据库以及DataGridView所做的任何更改。

回答

1

您正试图将EventArgs(parent type)转换为DataGridViewCellEventArgs(child type)。在这种情况下这不安全。您可以创建一个新的DataGridViewCellEventArgs

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

这里创建了一个新的DataGridViewCellEventArgs。由于它是与单元相关的动作的Event参数,所以需要columnIndexrowIndex来定位单元。

+0

什么是colIndex和rowIndex先生? – Kaoru

相关问题