Eventos de teclado en DataGrid

15/12/2004 - 17:54 por Laforge | Informe spam
Yo también ando loco buscando una solución para eso? Alguien puede hecharnos
un cable?

Saludos


"Arnauri" <Arnauri@discussions.microsoft.com> escribió en el mensaje
news:18A10B42-6BAD-4FD7-9FF0-284E71C966E2@microsoft.com...

Hola a todos:
¿Cómo puedo hacer que un datagrid reciba eventos de teclado cuando estoy
editando alguna de sus celdas? Me es del todo imposible conseguirlo.
Un saludo


Preguntas similare

Leer las respuestas

#1 Imac_Man
15/12/2004 - 18:24 | Informe spam
Es Facil, lo que debes hacer es crearlo manejadores de eventos en tiempo de
ejecucion, te paso un ejemplo

Primera linea
Dim eveTecla As DataGridTextBoxColumn =
CType(tab_TablaEstilo.GridColumnStyles(2), DataGridTextBoxColumn)

Esta es otra linea
AddHandler eveTecla.TextBox.KeyPress, AddressOf subProcedimientoX

Private sub ProcedimientoX (ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs)
Codigo de control
End sub

Saludos


"Laforge" escribió en el mensaje
news:
Yo también ando loco buscando una solución para eso? Alguien puede
hecharnos
un cable?

Saludos


"Arnauri" escribió en el mensaje
news:
Hola a todos:
¿Cómo puedo hacer que un datagrid reciba eventos de teclado cuando estoy
editando alguna de sus celdas? Me es del todo imposible conseguirlo.
Un saludo










Respuesta Responder a este mensaje
#2 Laforge
15/12/2004 - 19:11 | Informe spam
Bufff, suerte que has dicho que es fácil!!! jejeje

Gracias, pero no consigo instanciar correctamente eveTeclapodrías
orientarme de qué es lo que estoy haciendo mal?

Private EveTecla As DataGridTextBoxColumn CType(Grid1.TableStyles(0).GridColumnStyles(0), DataGridTextBoxColumn)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

AddHandler EveTecla.TextBox.KeyDown, AddressOf CeldaDown

End Sub

Private Sub CeldaDown (byval sender ..etc)






"Imac_Man" escribió en el mensaje
news:
Es Facil, lo que debes hacer es crearlo manejadores de eventos en tiempo


de
ejecucion, te paso un ejemplo

Primera linea
Dim eveTecla As DataGridTextBoxColumn > CType(tab_TablaEstilo.GridColumnStyles(2), DataGridTextBoxColumn)

Esta es otra linea
AddHandler eveTecla.TextBox.KeyPress, AddressOf subProcedimientoX

Private sub ProcedimientoX (ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs)
Codigo de control
End sub

Saludos


"Laforge" escribió en el mensaje
news:
> Yo también ando loco buscando una solución para eso? Alguien puede
> hecharnos
> un cable?
>
> Saludos
>
>
> "Arnauri" escribió en el mensaje
> news:
>> Hola a todos:
>> ¿Cómo puedo hacer que un datagrid reciba eventos de teclado cuando


estoy
>> editando alguna de sus celdas? Me es del todo imposible conseguirlo.
>> Un saludo
>>
>>
>
>
>
>
>
>



Respuesta Responder a este mensaje
#3 fernando
15/12/2004 - 19:55 | Informe spam
Hola haber si te sirve:
en el form en donde tienes el datagrid busca en el combo de las clases una
que diga "Reemplazos". Una vez que la tienes seleccionada buscas en el combo
de los metodos una que diga "ProcessCmdKey". Este metodo maneja todos los
mensajes antes que sean procesados. Ej:

If msg.WParam.ToInt32 = CInt(Keys.Enter) Then 'tecla enter

'aca adentro haces las acciones que necesitas

End If

En el ejemplo pregunto por la tecla enter, pero podrias preguntar por
cualquiera.Suerte

Fernando-Almería

"Laforge" escribió en el mensaje
news:
Yo también ando loco buscando una solución para eso? Alguien puede


hecharnos
un cable?

Saludos


"Arnauri" escribió en el mensaje
news:
> Hola a todos:
> ¿Cómo puedo hacer que un datagrid reciba eventos de teclado cuando estoy
> editando alguna de sus celdas? Me es del todo imposible conseguirlo.
> Un saludo
>
>






Respuesta Responder a este mensaje
#4 Imac_Man
15/12/2004 - 21:08 | Informe spam
ok dejame orientarte mas, el caso es que tu lo primero que haces es llenar
el datagrid con un dataset, luego le creas, un tablestyle que ya contienen
las columnas formatedas con titulo, ancho, mapping, y todo eso, finalmente,
le agregas esto al datagrid y ya lo tienespues bien en la parte que
defines el tablestyle con las columnas le agregas la declaracion, te paso un
codigo con un poco mas de detalle.

DataGrid1.datasource = Ds.table("Clientes")

dim TablaEstilo as new DataGridTableSyle
dim Columna1 as new DataGridTextBoxColumn
dim Columna2 as new DataGridTextBoxColumn

TablaEstilo = new DataGridTableStyle
TablaEstilo.MappingName = Ds.Tablename.tostring

Columna1.MappingName = "codigo_cliente"
Columna1.Header = "Codigo del Cliente"
Columna1.width p
TablaEstilo.GridColumnStyle.add(Columna1)

Columna2.MappingName = "nombre_cliente"
Columna2.Header = "Nombre Cliente"
Columna2.width 0
TablaEstilo.GridColumnStyle.add(Columna2)

Dim eveTecla As DataGridTextBoxColumn
=CType(tab_TablaEstilo.GridColumnStyles("codigo_cliente"),
DataGridTextBoxColumn)
AddHandler eveTecla.TextBox.KeyPress, AddressOf subProcedimientoX

DataGrid1.TableStyles.add (TablaEstilo)

las declares a nivel del formulario y no de un procedimiento, luego venimos
y nos creamos la sub que hara las veces del manejador de eventos


Private sub ProcedimientoX (ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs)
e.handle
msgbox ("Hola Mundo")
End sub

Espero que te sirva pero de tener mas problemas cuentamelo, ok, saludos






"Laforge" escribió en el mensaje
news:u8RM%
Bufff, suerte que has dicho que es fácil!!! jejeje

Gracias, pero no consigo instanciar correctamente eveTeclapodrías
orientarme de qué es lo que estoy haciendo mal?

Private EveTecla As DataGridTextBoxColumn > CType(Grid1.TableStyles(0).GridColumnStyles(0), DataGridTextBoxColumn)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

AddHandler EveTecla.TextBox.KeyDown, AddressOf CeldaDown

End Sub

Private Sub CeldaDown (byval sender ..etc)






"Imac_Man" escribió en el mensaje
news:
Es Facil, lo que debes hacer es crearlo manejadores de eventos en tiempo


de
ejecucion, te paso un ejemplo

Primera linea
Dim eveTecla As DataGridTextBoxColumn >> CType(tab_TablaEstilo.GridColumnStyles(2), DataGridTextBoxColumn)

Esta es otra linea
AddHandler eveTecla.TextBox.KeyPress, AddressOf subProcedimientoX

Private sub ProcedimientoX (ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs)
Codigo de control
End sub

Saludos


"Laforge" escribió en el mensaje
news:
> Yo también ando loco buscando una solución para eso? Alguien puede
> hecharnos
> un cable?
>
> Saludos
>
>
> "Arnauri" escribió en el mensaje
> news:
>> Hola a todos:
>> ¿Cómo puedo hacer que un datagrid reciba eventos de teclado cuando


estoy
>> editando alguna de sus celdas? Me es del todo imposible conseguirlo.
>> Un saludo
>>
>>
>
>
>
>
>
>








Respuesta Responder a este mensaje
#5 Laforge
16/12/2004 - 10:28 | Informe spam
Sí, sí, lo de llenar el datagrid con el dataset, tablestyles y
columnstyles...hasta ahí llegaba, pero claro no llegué a entender dónde
debía declarar "eveTecla". Ok, ahora todo entendido. Muchas gracias, ahora
probaré a ver qué tal.

Saludos,


"Imac_Man" escribió en el mensaje
news:
ok dejame orientarte mas, el caso es que tu lo primero que haces es llenar
el datagrid con un dataset, luego le creas, un tablestyle que ya contienen
las columnas formatedas con titulo, ancho, mapping, y todo eso,


finalmente,
le agregas esto al datagrid y ya lo tienespues bien en la parte que
defines el tablestyle con las columnas le agregas la declaracion, te paso


un
codigo con un poco mas de detalle.

DataGrid1.datasource = Ds.table("Clientes")

dim TablaEstilo as new DataGridTableSyle
dim Columna1 as new DataGridTextBoxColumn
dim Columna2 as new DataGridTextBoxColumn

TablaEstilo = new DataGridTableStyle
TablaEstilo.MappingName = Ds.Tablename.tostring

Columna1.MappingName = "codigo_cliente"
Columna1.Header = "Codigo del Cliente"
Columna1.width p
TablaEstilo.GridColumnStyle.add(Columna1)

Columna2.MappingName = "nombre_cliente"
Columna2.Header = "Nombre Cliente"
Columna2.width 0
TablaEstilo.GridColumnStyle.add(Columna2)

Dim eveTecla As DataGridTextBoxColumn
=CType(tab_TablaEstilo.GridColumnStyles("codigo_cliente"),
DataGridTextBoxColumn)
AddHandler eveTecla.TextBox.KeyPress, AddressOf subProcedimientoX

DataGrid1.TableStyles.add (TablaEstilo)



eventos
las declares a nivel del formulario y no de un procedimiento, luego


venimos
y nos creamos la sub que hara las veces del manejador de eventos


Private sub ProcedimientoX (ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs)
e.handle
msgbox ("Hola Mundo")
End sub

Espero que te sirva pero de tener mas problemas cuentamelo, ok, saludos






"Laforge" escribió en el mensaje
news:u8RM%
> Bufff, suerte que has dicho que es fácil!!! jejeje
>
> Gracias, pero no consigo instanciar correctamente eveTeclapodrías
> orientarme de qué es lo que estoy haciendo mal?
>
> Private EveTecla As DataGridTextBoxColumn > > CType(Grid1.TableStyles(0).GridColumnStyles(0), DataGridTextBoxColumn)
>
> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MyBase.Load
>
> AddHandler EveTecla.TextBox.KeyDown, AddressOf CeldaDown
>
> End Sub
>
> Private Sub CeldaDown (byval sender ..etc)
>
>
>
>
>
>
> "Imac_Man" escribió en el mensaje
> news:
>> Es Facil, lo que debes hacer es crearlo manejadores de eventos en


tiempo
> de
>> ejecucion, te paso un ejemplo
>>
>> Primera linea
>> Dim eveTecla As DataGridTextBoxColumn > >> CType(tab_TablaEstilo.GridColumnStyles(2), DataGridTextBoxColumn)
>>
>> Esta es otra linea
>> AddHandler eveTecla.TextBox.KeyPress, AddressOf subProcedimientoX
>>
>> Private sub ProcedimientoX (ByVal sender As Object, ByVal e As
>> System.Windows.Forms.KeyPressEventArgs)
>> Codigo de control
>> End sub
>>
>> Saludos
>>
>>
>> "Laforge" escribió en el mensaje
>> news:
>> > Yo también ando loco buscando una solución para eso? Alguien puede
>> > hecharnos
>> > un cable?
>> >
>> > Saludos
>> >
>> >
>> > "Arnauri" escribió en el mensaje
>> > news:
>> >> Hola a todos:
>> >> ¿Cómo puedo hacer que un datagrid reciba eventos de teclado cuando
> estoy
>> >> editando alguna de sus celdas? Me es del todo imposible conseguirlo.
>> >> Un saludo
>> >>
>> >>
>> >
>> >
>> >
>> >
>> >
>> >
>>
>>
>>
>
>
>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida