Я пытаюсь проверить значение ячейки, чтобы убедиться, что она числовая.Если это не так, я хочу отобразить ошибку, стереть ячейку и установить их обратно в ячейку для исправления.
private void gridData_CellEndEdit(object sender, DataGridViewCellEventArgs e) {
// If Cell Edited is in the Add'l Qty Column
if (gridData.Columns[e.ColumnIndex].Name == "AddlQty") {
int intVal;
// Validate Entry for Numeric Only
if (int.TryParse(gridData.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out intVal)) {
CalcFinalQty(e.RowIndex);
} else {
// Clear and Send User Back to Try Again
gridData.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "";
gridData.CurrentCell = gridData.Rows[e.RowIndex].Cells[e.ColumnIndex];
MessageBox.Show("Entry Not Valid, Only Numeric Values Accepted");
gridData.BeginEdit(true);
}
}
} // End gridData_CellEndEdit
Он ловит, числовое оно или нет, стирает ячейку, но отображаетMessageBox дважды.После первого раза выбранная ячейка перемещается к следующей ячейке вниз, появляется другой MessageBox, и ТО возвращается к ячейке и настраивается для редактирования.
Если вы нажмете Enter, не вводя ничего в ячейку,выдает ошибку исключения Null.