2010-06-17 16 views

Respuesta

12

Controle el evento KeyDown y tener algo como:

if (e.Modifiers == Keys.Shift && e.KeyCode == Keys.Up) 
{ 
    MessageBox.Show("My message"); 
} 

El controlador de eventos tiene que estar en el formulario principal y hay que establecer la propiedad KeyPreview a true. Esto se puede hacer en modo de diseño desde el cuadro de diálogo de propiedades.

+1

No creo que funcione. Lo intenté muchas veces, pero el MessageBox nunca apareció – Graviton

+0

@Ngu Soon Hui - ¿puedes publicar tu código entonces? Deberia de funcionar. – ChrisF

+1

funciona en un evento 'keydown' para un formulario. Lo siento. Estaba colocando el código anterior en el evento 'keydown' del control alojado en el formulario, que era el motivo por el cual no funcionaba – Graviton

2

En caso de que quiera usar varios modificadores, KeyEventArgs también tiene valores booleanos para indicar si se presionan CTRL, ALT o SHIFT.

Ejemplo:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Control && e.Alt && e.Shift && e.KeyCode == Keys.F12) 
     MessageBox.Show("My message"); 
} 

En este ejemplo el cuadro de mensaje es mostrar si CTRL, ALT, SHIFT y F12 se presionan al mismo tiempo.

Cuestiones relacionadas