2008-12-09 5 views

Répondre

31

Et un peu plus:

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

Je me sens vraiment stupide. Je n'avais aucune idée que ModifierKeys existait. Je l'ai fait old school (capturant le keydown et la mise en place d'un booléen) pendant des années. Je suppose que vous apprenez quelque chose de nouveau chaque jour. :) –

+3

Je me sens "stupide" tous les jours ... et certainement chaque fois que je viens sur StackOverflow, puis je me suis inspiré par les développeurs "intelligents" et les efforts pour m'améliorer. (Ce n'est en aucun cas un accord avec vous étant "stupide" en passant ") –

+0

Merci beaucoup, Simon, ça marche parfaitement, je vous ai voté mais où est-ce que le lien" Accepter la réponse "est allé! –

4

En supposant WinForms, utilisez Control.ModifierKeys, par exemple:

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

WPF En supposant, utilisez Keyboard.Modifiers, par exemple:

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