Primero cabe aclarar los siguiente:
1) No soy un experto en el tema quizas ni si quiera un usuario intermedio.
2) Jamas estudie programacion (aprendo a los ponchazos, pero hay muchisimas cosas que no se
3) Soy bastante flojo (vago, perezoso, se entiende no?)
aclarado esto te digo lo siguiente.
* al usar DataGridView el evento keypress deja de funcionar si estamos editando una celda.
* no obstante podemos al editar una celda usar EditingControlShowing para el DGV y generar un handle para usarlo con el keypress.
--------------------------------------------------------------------------------------------------------
Entiendo que no soy muy claro, por eso te pongo el codigo que use yo y que me funciona bastante bien
--------------------------------------------------------------------------------------------------------
Código:
Private Sub dataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
Dim txtEdit As TextBox = e.Control
RemoveHandler txtEdit.KeyPress, AddressOf txtEdit_Keypress
AddHandler txtEdit.KeyPress, AddressOf txtEdit_Keypress
End Sub
Private Sub txtEdit_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
If e.KeyChar = "." Then
e.KeyChar = ","
End If
End Sub
PD: Entiendo que estoy reviviendo un post antiguo, pero al ser uno de los primeros que salen al buscar en google me parecio que valia la pena responder