Cita:  
					Iniciado por kyha 
  Hola a todos
  Encontre la solucion os dejo el codigo por si alguien le interesa.
 
    Private Sub Validar(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
     'Validar Fila seleccionada 
  Dim drwFila As DataGridViewCell = grid1.CurrentCell()
        If drwFila.ColumnIndex > 3 Then
            'Si son digitos o si es la tecla borrar
            If Char.IsDigit(e.KeyChar) Or (Asc(e.KeyChar) = 8) Then
                e.Handled = False
            Else
                e.Handled = True
            End If
        End If
    End Sub
  '  cuando una celda del DataGridView pasa del modo normal al de edicion, precisamente usamos este evento porqueç
 ' a traves de el podemos obtener la tecla que se ha pulsado, en este caso
    Private Sub grid1_EditingControlShowing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlSho  wingEventArgs) Handles grid1.EditingControlShowing
        AddHandler e.Control.KeyPress, AddressOf Validar
    End Sub
    
yo lo modifique asi:  
Public Class Form1 
    Private Sub Validar(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        'Validar Fila seleccionada 
        Dim drwFila As DataGridViewCell = DataGridView1.CurrentCell()
        Select Case drwFila.ColumnIndex
            Case 0
                e.KeyChar = 'funcion1()
            Case 1
                ' este no lo kiero validar
            Case 2
                e.KeyChar = 'funcion2()
            Case 3
                e.KeyChar = 'funcion3()
        End Select
    End Sub 
    ' cuando una celda del DataGridView pasa del modo normal al de edicion, precisamente usamos este evento porqueç
    ' a traves de el podemos obtener la tecla que se ha pulsado, en este caso
    Private Sub DataGridView1_EditingControlShowing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlSho  wingEventArgs) Handles DataGridView1.EditingControlShowing
        AddHandler e.Control.KeyPress, AddressOf Validar
    End Sub
End Class  
funcion 1,2 y 3 son unas funciones en las cuales valido todo lo que quiero, si e snumero letra o algo mas complejo, si el caracter que presiono el usr es correcto regreso este mismo (o lo cambio por otro si asi lo requiero - por ejemplo que kiera cambiar las comas por puntos o algo asi). si es un caracter que no kiero que sea aceptado simplemente regreso nothing. 
espero les sea de utilidad. saludos