2011-05-12 3 views
5

¿Cómo puedo cerrar mi programa C# WinForms mientras hay algunos controles como treeviews, botones y otras cosas están presentes en él y tienen focous y que podrían tener lo mismo ¿atajo de teclado?Cómo cerrar un WinForm con el teclado mientras que un control tiene foco

por ejemplo en mi vista de árbol si presiono la tecla ALT + ESC, los nodos serán eliminados. pero quiero poder presionar la tecla ESC el método 'this.Close()' para ser llamado sin importar si algún control tiene foco.

Gracias.

Respuesta

2

Tal vez usted podría intentar esto reemplazando en la Form

protected override bool ProcessDialogKey(Keys keyData) 
{ 
    if (keyData == Keys.Escape) 
    { 
     this.Close(); 
     return true; 
    } 
    else 
     return base.ProcessDialogKey(keyData); 
} 
4

Conjunto KeyPreview propiedad de su formulario a verdadero. Esto le permite manejar mensajes de teclado en controladores de formulario antes de controladores de control, incluso si el control tiene foco.

1

Debe establecer la propiedad KeyPreview del formulario en true. Esto permitirá que el formulario capture las pulsaciones de teclas antes de pasarlas a los controles en él, lo que permite interceptarlas y pasarlas si lo desea, o hacer alguna otra cosa, como cerrar el formulario con su combinación de teclas. .

0

Establecer la propiedad KeyPreview del formulario en true (que transferirá el caso keyborad para formar antes de que los controles.), Y escribir código en el Evento KeyXXX, y busque la tecla ESC y llame al this.close()

0

Ya está integrado en Windows. Alt-F4 cerrará la aplicación de primer plano. No necesita hacer nada especial para manejar esto usted mismo. Si desea cerrar una sola ventana, y no toda la aplicación, como en una interfaz estilo MDI, entonces Ctrl-F4 hará el truco.

+0

Eso es cierto, pero presionar ESC es mucho más fácil que la combinación alt f4, ¡especialmente cuando el usuario tiene que hacerlo mucho! –

+0

Yo diría lo contrario. Puede inventar una alternativa "más fácil" que sea específica para su aplicación, pero enseñar a sus usuarios las claves estándar les ayudará en * todas * las aplicaciones que utilizan. Donde ya existe un estándar, trate de no inventar alternativas. – Mel

Cuestiones relacionadas