Как определить, когда клавиша управления удерживается во время нажатия кнопки - PullRequest
14 голосов
/ 09 декабря 2008

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

Ответы [ 2 ]

31 голосов
/ 09 декабря 2008

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

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" );
}
5 голосов
/ 09 декабря 2008

Предполагая 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());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...