Instead of using the CellLeave event, try using the CellValidating event. If you cancel the event, I believe the DataGridView forces the user to amend the data before they can leave the cell.
The given DataGridViewCellValidatingEventArgs
object should have the value you need in e.FormattedValue
and can be cancelled if e.Cancel
is set to true.