Evento IsInputKey

07/09/2005 - 15:37 por Carlos Vigliola \(ADINET\) | Informe spam
Estimados:

necesito hacer que cuando se presiona ENTER sobre la columna de una grilla,
se pase a la siguiente columna como lo haría si se presionara la flecha a la
derecha.
Buscando en la ayuda de VB:NET encontré que debo sobreescribir el evento
IsInputKey.
Creé una clase nueva que hereda la DataGrid y sobreescribí el método pero no
pude hacerlo funcionar.

¿Alguna idea?

Gracias.
 

Leer las respuestas

#1 Imac_man
08/09/2005 - 02:44 | Informe spam
Como estas amigo, la tecnica que te mencionan es funcional pero esta es otra
buena opcion que seguramente te servira, fijate:
La idea es cargar un origen de datos en el dataset y luego le agregamos al
dataset una TableStyle y para construir la TableStyle usamos una
funcion.luego si te fijas dentro de la funcion que retorna el tablestyle
a cada columna le declaramos un evento keypress que esta direccionado a un
procedimiento que recibe la pulsasion de tecla y cambia enviando la tecla
derechaotra buena opcion es crear una clase bien sencilla derivada de la
DataGridTextBoxColumn que reciba en el keypress enter y envie la tecla de
cursor que deseas y asi no debes hacer mucho codigo por cada columna.

Espero que te sirva, saludos

Private Sub Carga_Grid()
DataGrid1.DataSource = DataSet1.Tables(0)
DataGrid.TableStyles.add(Col_Grid(DataSet1))
end sub

Private function Col_Grid( Datos as DataSet) as DataGridTableStyle
dim Tabla as new DataGridTableStyle
dim Col as new DataGridTextBoxColumn
Tabla.mapping = Datos.tables(0).tablename

Col.mapping = Datos.tables(0).Columns("CodigoCliente")
Col.width = 40
Col.header = "Codigo del Cliente"
Tabla.ColumnStyles.add(Col)
AddHandler Col.textbox.KeyDown, AddressOf Evento_KeyPress

Col = new DataGridTexboxColumn
Col.mapping = Datos.tables(0).Columns("NombreCliente")
Col.width = 200
Col.header = "Nombre del Cliente"
Tabla.ColumnStyles.add(Col)
AddHandler Col.textbox.KeyDown, AddressOf Evento_KeyPress

Return Tabla
End Function

Private sub Private Sub Evento_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.enter Then
SendKeys.Send("{Right}")
End If
End sub





"Carlos Vigliola (ADINET)" escribió en el mensaje
news:
Estimados:

necesito hacer que cuando se presiona ENTER sobre la columna de una
grilla,
se pase a la siguiente columna como lo haría si se presionara la flecha a
la
derecha.
Buscando en la ayuda de VB:NET encontré que debo sobreescribir el evento
IsInputKey.
Creé una clase nueva que hereda la DataGrid y sobreescribí el método pero
no
pude hacerlo funcionar.

¿Alguna idea?

Gracias.


Preguntas similares