2008-12-09 22 views

Respuesta

31

Y un poco más:

private void button1_Click (object sender, EventArgs e) 
{   
    if((ModifierKeys & Keys.Control) == Keys.Control) 
    { 
     ControlClickMethod();  
    } 
    else 
    { 
     ClickMethod(); 
    } 
} 

private void ControlClickMethod() 
{ 
    MessageBox.Show("Control is pressed"); 
} 

private void ClickMethod() 
{ 
    MessageBox.Show ("Control is not pressed"); 
} 
+0

Me siento realmente estúpido. No tenía idea de que existieran ModifierKeys. Lo he estado haciendo en la vieja escuela (capturando la clave y estableciendo un booleano) durante años. Supongo que aprendes algo nuevo todos los días. :) –

+3

Me siento "estúpido" todos los días ... y definitivamente cada vez que entro en StackOverflow, me inspiro en los desarrolladores "inteligentes" y en la lucha por mejorarme. (Por cierto, esto no es un acuerdo contigo por ser "estúpido") –

+0

Muchas gracias, Simon. ¡Funciona a la perfección! ¡Te voté pero dónde estuvo el enlace "Aceptar respuesta"! –

4

Suponiendo WinForms, Control.ModifierKeys uso, por ejemplo:

private void button1_Click(object sender, EventArgs e) { 
    MessageBox.Show(Control.ModifierKeys.ToString()); 
} 

Suponiendo WPF, Keyboard.Modifiers uso, por ejemplo:

private void Button_Click(object sender, RoutedEventArgs e) { 
    MessageBox.Show(Keyboard.Modifiers.ToString()); 
} 
Cuestiones relacionadas