al introducir un boton falla KeyDown

19/12/2009 - 02:22 por Javito | Informe spam
Estoy haciendo un juego simple que captura las pulsaciones del teclado
mediante eventos de formulario KeyDown y me ha sorprendido el que al
principio funcionaba sin problemas y capturaba las teclas diferenciándolas
por el KeyEventArgs, pero de repente al incluir un botón para iniciar el
juego dejaron de funcionar los eventos de recogidas de teclas, he
reproducido el caso en un proyecto vacío y un formulario vacío y el
resultado es el mismo al meter un botón deja de recoger los eventos de
teclado de formulario, no pasa con otros controles, por lo que he iniciado
el juego con el evento click de una etiqueta, pero sabéis a que se puede
deber este comportamiento.

un saludo
 

Leer las respuestas

#1 Hernán
19/12/2009 - 15:00 | Informe spam
Javito escribía:

Estoy haciendo un juego simple que captura las pulsaciones del teclado
mediante eventos de formulario KeyDown y me ha sorprendido el que al
principio funcionaba sin problemas y capturaba las teclas diferenciándolas
por el KeyEventArgs, pero de repente al incluir un botón para iniciar el
juego dejaron de funcionar los eventos de recogidas de teclas, he
reproducido el caso en un proyecto vacío y un formulario vacío y el
resultado es el mismo al meter un botón deja de recoger los eventos de
teclado de formulario, no pasa con otros controles, por lo que he iniciado
el juego con el evento click de una etiqueta, pero sabéis a que se puede
deber este comportamiento.

un saludo




Es el comportamiento típico de windows de toda la vida.

De todos modos, tienes el key preview del form. Esto le permite continuar
recibiendo keydowns, al menos aquellos que no son interceptados por algún
filtro que le asigna un significado particular (e.g. el handler de teclado
de los diálogos te filtrará las flechas entre otras).

La doc te indica cuales son estos varios filtros que condicionan el
despacho del keydown. También te dice cuales son los métodos que debes
sobreescribir si te animas a modificar esta conducta.



Todo bien.

Preguntas similares