Control.ModifierKeys не срабатывает при нажатии клавиши Return / Enter - PullRequest
1 голос
/ 14 сентября 2011

Я пытаюсь определить, когда пользователь нажимает клавишу Return, когда находится в текстовом поле Winforms, но ни один из приведенных ниже управляющих операторов не работает , когда я использую Keys.Enter и / или Keys.Return .Это работает, когда я обнаруживаю другие клавиши, такие как Alt и Shift.Что мне не хватает?Единственное, что я могу сказать, это то, что я тестирую это на клавиатуре MacBook (под управлением Windows), но наверняка эти клавиши отображаются на 100% правильно?

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
    if ((Control.ModifierKeys == Keys.Enter))
    {
        btnOK_Click(null, null);
    }

    if ((Control.ModifierKeys & Keys.Return) != 0)
    {
        btnOK_Click(null, null);
    }
}

1 Ответ

2 голосов
/ 14 сентября 2011

Попробуйте использовать:

e.KeyCode == Keys.Enter

Control.ModifierKeys поймать, только если нажаты ctrl, alt, shift!

, если вам нужно только поймать "ввод" без нажатия любой клавишииспользование:

e.KeyData == Keys.Enter
...