Currently I'm using:
Private Sub dgvStock_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvStock.CellEndEdit
Select Case Me.dgvStock.Columns(e.ColumnIndex).Name
Case "Quantity", "Unit Cost"
If Not IsNumeric(Me.dgvStock(e.ColumnIndex, e.RowIndex).Value) Then
Me.dgvStock(e.ColumnIndex, e.RowIndex).Value = 0
End If
End Select
End Sub
but is there a more elegant solution? It would be better to prevent the non-numeric input in the first place rather than fix it after entry.