Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Accionar evento KeyPress en DataGrid (http://www.forosdelweb.com/f29/accionar-evento-keypress-datagrid-272840/)

Malcom x 21/02/2005 12:52

Accionar evento KeyPress en DataGrid
 
Hola a tod@s, lo ke deseo hacer es accionar un evento KeyPress en un DataGrida, pero debe ser al momento de editar una celda en especial, ya que este evento (Private Sub MiDataGrid_KeyPress(...)) funciona cuando tiene el foco el DataGrid, y no cuando estoy editando dentro de una celda en especial.

Esperando alguna ayudita, me despido atte. Markos :adios:

mrchuseau 16/07/2008 12:06

Respuesta: Accionar evento KeyPress en DataGrid
 
Primero cabe aclarar los siguiente:
1) No soy un experto en el tema quizas ni si quiera un usuario intermedio.

2) Jamas estudie programacion (aprendo a los ponchazos, pero hay muchisimas cosas que no se

3) Soy bastante flojo (vago, perezoso, se entiende no?)

aclarado esto te digo lo siguiente.
* al usar DataGridView el evento keypress deja de funcionar si estamos editando una celda.
* no obstante podemos al editar una celda usar EditingControlShowing para el DGV y generar un handle para usarlo con el keypress.

--------------------------------------------------------------------------------------------------------
Entiendo que no soy muy claro, por eso te pongo el codigo que use yo y que me funciona bastante bien
--------------------------------------------------------------------------------------------------------
Código:

    Private Sub dataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
        Dim txtEdit As TextBox = e.Control
        RemoveHandler txtEdit.KeyPress, AddressOf txtEdit_Keypress
        AddHandler txtEdit.KeyPress, AddressOf txtEdit_Keypress
    End Sub

    Private Sub txtEdit_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If e.KeyChar = "." Then
            e.KeyChar = ","
        End If
    End Sub


PD: Entiendo que estoy reviviendo un post antiguo, pero al ser uno de los primeros que salen al buscar en google me parecio que valia la pena responder


La zona horaria es GMT -6. Ahora son las 02:34.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.