Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con el EditingControlShowing de datagridview

Estas en el tema de Problema con el EditingControlShowing de datagridview en el foro de .NET en Foros del Web. Hola a todos Con el siguietne codigo pensaba que me limitaria los caracteres numericos a introducir en una celda.Y en cierto modo si que lo ...
  #1 (permalink)  
Antiguo 29/07/2008, 03:33
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 152
Antigüedad: 15 años, 10 meses
Puntos: 3
Problema con el EditingControlShowing de datagridview

Hola a todos
Con el siguietne codigo pensaba que me limitaria los caracteres numericos a introducir en una celda.Y en cierto modo si que lo hace.El problema esta en que la primera celda donde me posiciono la hace bien,la segunda me pasada doble,la tercera hace 3 pasadas ,etc.No se como evitar que haga mas pasadas de las correspondientes.Es decir cuando yo de doy a un numero en la 2 celda hace dos pasadas por validar con el mismo numero ,pero solo muestra uno.
No se que es lo que pasa si alguien me puede ayudar. Gracias

'Grdi1_EditingControlShowing y validar nos sirven para que es usuario no pued introducir letras en las
' celdas numericas
Private Sub Validar(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
'celda seleccionada
Dim drwFila As DataGridViewCell = grid1.CurrentCell()
Dim final As Integer = 0

'Limitar el tamaño de las columnas
Select drwFila.ColumnIndex
Case 4
final = 5
Case 5
final = 1
Case 6
final = 13
Case 7
final = 11
Case 8
final = 11
Case Else 'otra opcion
final = 50
End Select

If cont = final Then
e.Handled = True
Beep()
Else
e.Handled = False
End If
If drwFila.ColumnIndex > 3 Then
'Si son digitos o si es la tecla borrar
If Char.IsDigit(e.KeyChar) Or (Asc(e.KeyChar) = 8) Or (Asc(e.KeyChar) = 46) Then
e.Handled = False
If Char.IsDigit(e.KeyChar) And cont <> final Then
cont = cont + 1
ElseIf (Asc(e.KeyChar) = 8) Then
cont = cont - 1
Else
e.Handled = True
End If
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
  #2 (permalink)  
Antiguo 29/07/2008, 10:12
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 152
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Problema con el EditingControlShowing de datagridview

Lo solucione gracias a mrchuseau que contesto un mensaje antiguo.
Aqui esta :
http://www.forosdelweb.com/f29/accionar-evento-keypress-datagrid-272840/
  #3 (permalink)  
Antiguo 29/07/2008, 10:43
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 152
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Problema con el EditingControlShowing de datagridview

Para que el primer codigo funcione bien solo hay que añadir esta fila en el evento grid1_EditingControlShowing.
RemoveHandler e.Control.KeyPress, AddressOf Validar

Hay que ponerla antes del
AddHandler e.Control.KeyPress, AddressOf Validar


Perdon por la ignoracia.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:43.