Pregunta: | 58684 - NO SE DISPARA EL EVENTO KEYPRESS |
Autor: | Sonia Martin |
Hola, Primero quisiera comentar que soy un "pececillo" en el mundo de programacion orientada a objetos y c sharp; llevo 6 meses intentando programar con c sharp. Estoy trabajando con los controles del DevExpress Mi problema es: Tengo un formulario => frmGestion en el cual tengo un panel y una barra de menu Cuando selecciono una opcion de menu; ej: mnuFichero: panel.Controls.Add(controlA); El control => controlA en el cual tengo un GridView, cuando pulso en el grid quiero capturar la tecla pulsada, ya sea numero o F2...., cualquier tecla. He programado el evento del grid: private void grdAsientos_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == Convert.ToChar(Keys.F2)) //F2 { OnSegundo(sender, e); e.Handled = true; } He aqui mi problema, yo pulso F2 y no entra en este evento, pulso el 9 y no entra, pulso TAB y no entra, pulso Intro y no entra y vulvo a pulsar intro y entronces entra en el void. ¿Que hago mal? Sea cual sea la tecla tendría que entrar, ¿no? y ademas a la primera no la segunda vez. Si alguien me entiende y me puede ayudar, millones de gracias le haré llegar. Saludos |
Respuesta: | miguel zarate |
Hola, parece ser que grdAsientos lo agregas en tiempo de ejecucion, por lo que no olvides que la debes delegar el evento key press de la siguiente manera: grdAsientosKeyPress += new KeyPressEventHandler(grdAsientos_KeyPress); ahora para no estar convirtiendo puedes usar en el if e.KeyCode==Keys.F2 espero te sirva, saludos |