2012-09-28 22 views
6

Tengo un control de usuario. Dentro del control de usuario, hay un PictureBox que usa todo el estado de la pantalla (Dock.Fill). Me gustaría detectar eventos de teclado (por ejemplo, Ctrl-V para implementar la funcionalidad Pegar).Propagación de eventos de teclado en winforms

Sin embargo, la PictureBox no tiene ningún evento clave. ¿La próxima capa debajo de PictureBox (es decir, el control del usuario) obtendrá el evento KeyUp? Si agrego mi controlador de eventos KeyUp al control de usuario, ¿funcionará? Sé que WPF tiene la solución de eventos enrutados. ¿Cómo funciona eso en winforms world?

+0

PictureBox no tomará el foco. Entonces sí, el UserControl recibe los mensajes. Evite que el manejo del teclado de un usuario controle la responsabilidad del formulario. –

Respuesta

4

Usted puede recibir el evento en el formulario. Ver Form.KeyPreview.

Cuando esta propiedad se establece en verdadero, el formulario recibirá todos los eventos KeyPress, KeyDown y KeyUp. Después de que los controladores de eventos del formulario hayan completado el procesamiento de la pulsación de tecla, la pulsación se asigna al control con el foco

Cuestiones relacionadas