Как определить, когда удерживается клавиша управления во время нажатия кнопки

Как определить, когда удерживается клавиша управления во время нажатия кнопки в программе С# Windows? Я хочу, чтобы одно действие выполнялось для Ctrl/Click и другого для Click.

2 ответа

И немного больше:

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" );
}


Предполагая WinForms, используйте Control.ModifierKeys, например:

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

Предполагая WPF, используйте Keyboard.Modifiers, например:

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

licensed under cc by-sa 3.0 with attribution.