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

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

Ответы

Ответ 1

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

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

Ответ 2

Предполагая 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());
}