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

Enter en Data Grid

Estas en el tema de Enter en Data Grid en el foro de .NET en Foros del Web. Hola a Todos: Se me hace increible que una edicion de un grid en vbnet de origen a este tema, pero ... Resulta que el ...
  #1 (permalink)  
Antiguo 01/10/2008, 10:05
 
Fecha de Ingreso: septiembre-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Enter en Data Grid

Hola a Todos:

Se me hace increible que una edicion de un grid en vbnet de origen
a este tema, pero ... Resulta que el comportamiento de la tecla enter
es diferente cuando se editan celdas en un datagrid, si estas se
encuentran en el ultimo renglon o no. Mis usuarios obviamente
(y esta vez creo que con razon) quieren introducir datos y
oprimir enter, como se hace en casi todo el mundo (o todo?), sin
embargo en el ultimo renglon del data grid visto que el comportamiento
no es igual, deben oprimir tab. He intentado reescribir (override) el
process key preview, para enviar un tab con SendKeys pero si no distingo en que renglon lo hago,termina enviando un tab y un enter, por lo que en celdas que no
estan en el ultimo renglon, la celda actual se mueve hacia abajo y a la derecha.

Parece que no logro deshacerme del enter y siempre se procesa esta tecla.
Yo quisiera que cada vez que el usuario aprieta enter en el DGrid, la aplicacion
la procese como TAB (que parece que es la tecla que tiene la funcion deseada)

Alguna idea?

Gracias
  #2 (permalink)  
Antiguo 01/10/2008, 10:08
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Enter en Data Grid

Hay un evento que debs contemplar y es el OnEditingControlShowing y ahi asignarle el manejador de eventos para el keypress en la celda que se convierte en ese momento en un TextBox. es solo eso

Te pongo un sample en unos minutos

----

Aqui esta

Código:
    private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (typeof(TextBox).Equals(e.Control.GetType()))
            {
                (e.Control as TextBox).KeyPress += new KeyPressEventHandler(Form1_KeyPress);
            }
        }

        void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == Keys.Enter)
            {
                e.Handled = true; 
            }
        }
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5

Última edición por Peterpay; 01/10/2008 a las 10:15
  #3 (permalink)  
Antiguo 10/07/2009, 11:00
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Enter en Data Grid

Hola yo tengo el mismo problema ya traye con el codigo que esta en el editing show pero me sale que no se System.blabla no coniene un definicion para keychar.

podria por favr publicar un ejemplo completo para revisarlo se lo agredeceria mucho gracias.
  #4 (permalink)  
Antiguo 10/07/2009, 12:06
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Enter en Data Grid

el error puede estar porque en el evento keypress el e.KeyChar debe ser tomado por un char
ejm:

e.KeyChar == '13'

en el evento KeyDown ahi puede funcionar ese codigo

e.KeyChar == Keys.Enter
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
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 07:57.