Show / Hide Table of Contents

Практическое руководство. Определение нажатой управляющей клавиши

При создании приложения, которое принимает нажатия клавиш пользователем, можно также отслеживать за нажатием клавиш клавиши SHIFT, ALT и CTRL. При нажатии в сочетании с другими клавишами или с помощью щелчков мыши, приложение может реагировать соответствующим образом. Например если нажата буквы S, это может просто вызвать «s» для отображения на экране, но при нажатии клавиш CTRL + S, текущий документ может быть сохранен. Если вы обрабатываете KeyDown событий, Modifiers свойство KeyEventArgs полученных событием обработчик определяет нажатии клавиши-модификаторы. Кроме того KeyData свойство KeyEventArgs определяет символ, который также была нажата в сочетании с операцию побитового или любые клавиши-модификаторы. Тем не менее если обрабатывается KeyPress события или события мыши, обработчик событий не получает эти сведения. В этом случае необходимо использовать ModifierKeys свойство Control класса. В любом случае необходимо выполнить операцию побитового и соответствующего Keys значения и значения, вы тестируете. Keys Перечисление предоставляет варианты каждого ключа модификатор, поэтому очень важно выполнить побитового и с правильным значением. Например, клавиша SHIFT представляется Shift, ShiftKey, RShiftKey и LShiftKey правильное значение для тестирования является клавиша SHIFT Shift. Аналогичным образом, для проверки CTRL и ALT качестве модификаторов вы должны использовать Control и Alt соответственно.

Note

Программистов Visual Basic также доступны сведения о ключе через Keyboard свойство

Чтобы определение нажатой управляющей клавиши

  • Используйте побитовый AND оператор с ModifierKeys свойство и значение Keys перечисления, чтобы определить, нажата ли клавиша определенного модификатор. В следующем примере кода показано, как определить, нажата ли клавиша SHIFT в KeyPress обработчик событий.

    public void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
        {
            MessageBox.Show("Pressed " + Keys.Shift);
        }
    }
    

См. также

  • Keys
  • ModifierKeys
  • Ввод с клавиатуры в приложении Windows Forms
  • Практическое руководство. Определить, что если CapsLock включен в Visual Basic
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX