Как проверить нажатие клавиши Ctrl? - PullRequest
4 голосов
/ 23 августа 2009

Я не могу получить состояние клавиши Ctrl в обработчике событий KeyUp, поскольку клавиша Ctrl выпущена.

Нужно ли проверять код ключа аргумента события?

Есть ли другой способ?

Ответы [ 2 ]

13 голосов
/ 23 августа 2009

Будет работать передача события в обработчик событий KeyUp.

Следующий код сработает при отпускании клавиши Ctrl :

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.ControlKey)
    {
        MessageBox.Show("Control key up");
    }
}


Если вы хотите проверить, была ли нажата комбинация Ctrl в сочетании с другим нажатием клавиши, например: Ctrl + F1 , может применяться следующий фрагмент кода :

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.Control && e.KeyCode == Keys.F1)
    {
        MessageBox.Show("Control + F1 key up");
    }
}


Примечание: возможно, вам придется включить KeyPreview в форме, чтобы перехватить все управляющие события KeyUp в одном месте.

0 голосов
/ 23 августа 2009
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if(e.Modifiers == Keys.Control)
     ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...