Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/10/2008, 19:15
ultimateZERO
 
Fecha de Ingreso: marzo-2008
Mensajes: 173
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Validar las celdas de un DataGrid

Cita:
Iniciado por kyha Ver Mensaje
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

Última edición por ultimateZERO; 20/10/2008 a las 19:43