2013-09-27 3 views
0

Я хочу попробовать вызвать событие внутри функции, а событие, которое я хочу вызвать, - DataGridViewCellEventArgs, но оно находится внутри функции. Но, когда я попытался ниже код, я получил эту ошибку: Unable to cast object of type 'System.Windows.Forms.MouseEventArgs' to type 'System.Windows.Forms.DataGridViewCellEventArgs'.Invalid Cast Exception был необработанным

Вот код:

private void UpdateQuantityDataGridView(object sender, EventArgs e) 
     { 

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

     } 

я вызываю выше функции, когда финишная пользователь редактирования данных в DataGridView и нажмите кнопку «OK», вышеприведенная функция заключается в обновлении любых изменений, внесенных пользователем в базу данных, а также в DataGridView.

. .

ответ

1
.

. Вы пытаетесь наложить EventArgs(parent type) на номер DataGridViewCellEventArgs(child type). В этом случае это небезопасно. Вы можете создать новый DataGridViewCellEventArgs.

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

Здесь создан новый DataGridViewCellEventArgs. Поскольку это аргумент Event для действия, связанного с ячейкой, для нахождения ячейки необходимы columnIndex и rowIndex.

+0

Что такое colIndex и rowIndex сэр? – Kaoru

Смежные вопросы