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

KeyDown DataGridView en Celda modo Edición

Estas en el tema de KeyDown DataGridView en Celda modo Edición en el foro de .NET en Foros del Web. Hola Gente del Foro: Soy nuevo en el foro, me llamo Pablo de Montevideo, Uruguay. Tengo una consulta que a esta altura es un "cosquilleo" ...
  #1 (permalink)  
Antiguo 01/12/2006, 07:59
 
Fecha de Ingreso: diciembre-2006
Mensajes: 3
Antigüedad: 18 años, 2 meses
Puntos: 0
Pregunta KeyDown DataGridView en Celda modo Edición

Hola Gente del Foro:
Soy nuevo en el foro, me llamo Pablo de Montevideo, Uruguay.
Tengo una consulta que a esta altura es un "cosquilleo" irresistible.

Estoy desarrollando una aplicación en Visual Basic .Net 2005.
Tengo un DataGridView (no enlazado) el cual tiene 5 columnas, en 3 de ellas el hay que ingresar un código válido, para esto capturo el evento KeyUp
con el fin de desplegarle un formulario al usuario que lo ayuda a elegir el codigo válido, el código del KeyDown es este...

Private Sub dgvRenglones_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) _
Handles dgvRenglones.KeyDown
Try
If e.KeyCode = Keys.F2 Then
Me.llamadaAlFormularioBusquedas()
ElseIf e.KeyCode = Keys.F1 Then
Me.editarDescripcionesDeCodigos()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Y funciona... cuando la celda está en modo SELECCIÓN, pero NO cuando la celda está en modo EDICIÓN, y no logro capturar el evento cuando el foco está dentro de la celda en el modo edición. ¿Alguna idea?

Por otro lado también quiero que al presionar la tecla <Enter> no me vaya para la fila de abajo, sino que pase para la celda CONTIGUA DERECHA, y en aquellas celdas donde debe ser ingresado un valor válido, que no permita salir de ella hasta no dar <Esc> ó poner un valor válido (para esto implementé dgvRenglones_CellValidating que me lo hace pero no pone el simbolo (!) con el mensaje de qué está sucediendo por lo que el usuario no sabe qué pasa)

Agradezco pila cualquier ayuda!!!!!!

Saludos,
Pablo
  #2 (permalink)  
Antiguo 06/12/2006, 19:34
 
Fecha de Ingreso: diciembre-2006
Mensajes: 3
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: KeyDown DataGridView en Celda modo Edición

Bueno, como nadie se la juega, respondo yo mismo (ya que encontré un código que me sirvió y que hace que el Enter se comporte como Tab...
#Region "Clase MiDataGridView"
Public Class MiDataGridView
Inherits DataGridView 'Heredar del DataGridView

'en el 'processDialogKey'... cuando estamos en edicion
Protected Overrides Function ProcessDialogKey( _
ByVal keyData As System.Windows.Forms.Keys) As Boolean
If keyData = Keys.Enter Then 'Si es 'enter'
SendKeys.Send(Chr(Keys.Tab)) 'Enviar un 'Tab'
Return True 'Marcar como procesado
Else 'en caso contrario
Return MyBase.ProcessDialogKey(keyData) 'devolver KeyData
End If
End Function

' en 'OnKeyDown'... cuando no estamos en edicion
Protected Overrides Sub OnKeyDown( _
ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyData = Keys.Enter Then 'Si es 'enter'
SendKeys.Send(Chr(Keys.Tab)) 'Enviar un 'Tab'
Else
MyBase.OnKeyDown(e) 'Devolver el KeyEventArgs
End If
End Sub
End Class
#End Region

Esto solucionó una parte del problema, pero la de poder "chapar" el evento KeyDown ó KeyUp ó KeyPress dentro de una celda en modo edición no encontré forma de hacerlo, si alguien completa esto bienvenido sea!!!
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 09:32.