Keys Перечисление

Определение

Задает коды ключей и модификаторы.

Это перечисление поддерживает побитовую комбинацию значений его членов.

public enum class Keys
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.KeysConverter))]
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum Keys
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.KeysConverter))]
[System.Flags]
public enum Keys
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.KeysConverter))>]
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Keys = 
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.KeysConverter))>]
[<System.Flags>]
type Keys = 
Public Enum Keys
Наследование
Атрибуты

Поля

Имя Значение Описание
Modifiers -65536

Битовая маска для извлечения модификаторов из значения ключа.

None 0

Нет нажатия клавиши.

LButton 1

Левая кнопка мыши.

RButton 2

Правая кнопка мыши.

Cancel 3

Ключ CANCEL.

MButton 4

Средняя кнопка мыши (три кнопки мыши).

XButton1 5

Первая кнопка мыши x (мышь с пятью кнопками).

XButton2 6

Вторая кнопка мыши x (мышь с пятью кнопками).

Back 8

Ключ BACKSPACE.

Tab 9

Клавиша TAB.

LineFeed 10

Ключ LINEFEED.

Clear 12

Ключ CLEAR.

Enter 13

Клавиша ВВОД.

Return 13

Ключ RETURN.

ShiftKey 16

Клавиша SHIFT.

ControlKey 17

Клавиша CTRL.

Menu 18

Клавиша ALT.

Pause 19

Клавиша PAUSE.

Capital 20

Ключ CAPS LOCK.

CapsLock 20

Ключ CAPS LOCK.

HanguelMode 21

Ключ режима IME Hanguel. (поддерживается для совместимости; использование HangulMode)

HangulMode 21

Ключ режима IME Hangul.

KanaMode 21

Ключ режима IME Kana.

JunjaMode 23

Ключ режима IME Junja.

FinalMode 24

Ключ окончательного режима IME.

HanjaMode 25

Ключ режима IME Hanja.

KanjiMode 25

Ключ режима IME Kanji.

Escape 27

Клавиша ESC.

IMEConvert 28

Ключ преобразования IME.

IMENonconvert 29

Неконвертный ключ IME.

IMEAccept 30

IME принимает ключ, заменяет IMEAceept.

IMEAceept 30

IME принимает ключ. Устаревшее, используйте IMEAccept вместо этого.

IMEModeChange 31

Ключ изменения режима IME.

Space 32

Клавиша SPACEBAR.

PageUp 33

Клавиша PAGE UP.

Prior 33

Клавиша PAGE UP.

Next 34

Клавиша PAGE DOWN.

PageDown 34

Клавиша PAGE DOWN.

End 35

Ключ END.

Home 36

Ключ HOME.

Left 37

Клавиша СТРЕЛКА ВЛЕВО.

Up 38

Клавиша СТРЕЛКА ВВЕРХ.

Right 39

Клавиша СТРЕЛКА ВПРАВО.

Down 40

Клавиша СТРЕЛКА ВНИЗ.

Select 41

Ключ SELECT.

Print 42

Ключ PRINT.

Execute 43

Ключ EXECUTE.

PrintScreen 44

Клавиша PRINT SCREEN.

Snapshot 44

Клавиша PRINT SCREEN.

Insert 45

Ключ INS.

Delete 46

Ключ DEL.

Help 47

Ключ HELP.

D0 48

Клавиша 0.

D1 49

Клавиша 1.

D2 50

Клавиша 2.

D3 51

Клавиша 3.

D4 52

4 клавиши.

D5 53

Клавиша 5.

D6 54

6 клавиш.

D7 55

Клавиша 7.

D8 56

Клавиша 8.

D9 57

Клавиша 9.

A 65

Ключ A.

B 66

Клавиша B.

C 67

Ключ C.

D 68

Клавиша D.

E 69

Клавиша E.

F 70

Клавиша F.

G 71

Клавиша G.

H 72

Ключ H.

I 73

Клавиша I.

J 74

Ключ J.

K 75

Клавиша K.

L 76

Ключ L.

M 77

Клавиша M.

N 78

Клавиша N.

O 79

Клавиша O.

P 80

Ключ P.

Q 81

Ключ Q.

R 82

Ключ R.

S 83

Ключ S.

T 84

Клавиша T.

U 85

Ключ U.

V 86

Клавиша V.

W 87

Клавиша W.

X 88

Клавиша X.

Y 89

Ключ Y.

Z 90

Клавиша Z.

LWin 91

Левая Windows клавиша с логотипом (Microsoft естественной клавиатуры).

RWin 92

Правый Windows клавиша логотипа (Microsoft естественной клавиатуры).

Apps 93

Клавиша приложения (Microsoft естественной клавиатуры).

Sleep 95

Ключ спящего режима компьютера.

NumPad0 96

Ключ 0 на числовой клавиатуре.

NumPad1 97

1 ключ на числовой клавиатуре.

NumPad2 98

2 клавиши на числовой клавиатуре.

NumPad3 99

3 клавиши на числовой клавиатуре.

NumPad4 100

4 клавиша на числовой клавиатуре.

NumPad5 101

5 клавиш на числовой клавиатуре.

NumPad6 102

6 клавиш на числовой клавиатуре.

NumPad7 103

7 клавиш на числовой клавиатуре.

NumPad8 104

8 клавиш на числовой клавиатуре.

NumPad9 105

9 клавиша на числовой клавиатуре.

Multiply 106

Умножение ключа.

Add 107

Ключ добавления.

Separator 108

Ключ разделителя.

Subtract 109

Вычитание ключа.

Decimal 110

Десятичный ключ.

Divide 111

Ключ деления.

F1 112

Клавиша F1.

F2 113

Клавиша F2.

F3 114

Клавиша F3.

F4 115

Клавиша F4.

F5 116

Клавиша F5.

F6 117

Клавиша F6.

F7 118

Клавиша F7.

F8 119

Клавиша F8.

F9 120

Клавиша F9.

F10 121

Клавиша F10.

F11 122

Клавиша F11.

F12 123

Клавиша F12.

F13 124

Клавиша F13.

F14 125

Клавиша F14.

F15 126

Клавиша F15.

F16 127

Клавиша F16.

F17 128

Клавиша F17.

F18 129

Клавиша F18.

F19 130

Ключ F19.

F20 131

Клавиша F20.

F21 132

Ключ F21.

F22 133

Ключ F22.

F23 134

Ключ F23.

F24 135

Клавиша F24.

NumLock 144

Ключ NUM LOCK.

Scroll 145

Клавиша SCROLL LOCK.

LShiftKey 160

Клавиша SHIFT слева.

RShiftKey 161

Правый клавиша SHIFT.

LControlKey 162

Левая клавиша CTRL.

RControlKey 163

Правый клавиша CTRL.

LMenu 164

Левый клавиша ALT.

RMenu 165

Правый клавиша ALT.

BrowserBack 166

Ключ обратной части браузера.

BrowserForward 167

Ключ пересылки браузера.

BrowserRefresh 168

Ключ обновления браузера.

BrowserStop 169

Ключ остановки браузера.

BrowserSearch 170

Ключ поиска браузера.

BrowserFavorites 171

Ключ избранного браузера.

BrowserHome 172

Ключ домашнего браузера.

VolumeMute 173

Ключ выключения тома.

VolumeDown 174

Ключ уменьшения громкости.

VolumeUp 175

Ключ вверх по тому.

MediaNextTrack 176

Следующий ключ отслеживания мультимедиа.

MediaPreviousTrack 177

Предыдущий ключ отслеживания мультимедиа.

MediaStop 178

Клавиша "Остановить носитель".

MediaPlayPause 179

Клавиша приостановки воспроизведения мультимедиа.

LaunchMail 180

Ключ почты запуска.

SelectMedia 181

Выбор ключа мультимедиа.

LaunchApplication1 182

Начальный ключ приложения.

LaunchApplication2 183

Начальное приложение два ключа.

Oem1 186

Ключ OEM 1.

OemSemicolon 186

Клавиша С запятой OEM на стандартной клавиатуре США.

Oemplus 187

Клавиша OEM плюс на любой клавиатуре страны или региона.

Oemcomma 188

Клавиша запятой OEM на любой клавиатуре страны или региона.

OemMinus 189

Клавиша OEM минус на любой клавиатуре страны или региона.

OemPeriod 190

Клавиша периода OEM на любой клавиатуре страны или региона.

Oem2 191

Ключ OEM 2.

OemQuestion 191

Ключ вопросительного знака OEM на стандартной клавиатуре США.

Oem3 192

Ключ OEM 3.

Oemtilde 192

Клавиша OEM tilde на стандартной клавиатуре США.

Oem4 219

Ключ OEM 4.

OemOpenBrackets 219

Клавиша OEM с открытой скобкой на стандартной клавиатуре США.

Oem5 220

Ключ OEM 5.

OemPipe 220

Клавиша конвейера OEM на стандартной клавиатуре США.

Oem6 221

Ключ OEM 6.

OemCloseBrackets 221

Клавиша OEM закрывает скобку на стандартной клавиатуре США.

Oem7 222

Ключ OEM 7.

OemQuotes 222

Одинарный или двойной кавычки OEM на стандартной клавиатуре США.

Oem8 223

Ключ OEM 8.

Oem102 226

Ключ OEM 102.

OemBackslash 226

Угловая скобка OEM или клавиша обратной косой черты на клавиатуре клавиши RT 102.

ProcessKey 229

Ключ PROCESS KEY.

Packet 231

Используется для передачи символов Юникода, как если бы они были нажатиями клавиш. Значение ключа пакета — это низкое слово 32-разрядного значения виртуального ключа, используемого для методов ввода без клавиатуры.

Attn 246

Ключ ATTN.

Crsel 247

Ключ CRSEL.

Exsel 248

Ключ EXSEL.

EraseEof 249

Ключ ERASE EOF.

Play 250

Ключ PLAY.

Zoom 251

Ключ ZOOM.

NoName 252

Константы, зарезервированные для будущего использования.

Pa1 253

Ключ PA1.

OemClear 254

Ключ CLEAR.

KeyCode 65535

Битовая маска для извлечения кода ключа из значения ключа.

Shift 65536

Клавиша модификатора SHIFT.

Control 131072

Клавиша модификатора CTRL.

Alt 262144

Клавиша модификатора ALT.

Примеры

В следующем примере кода событие используется KeyDown для определения типа символа, введенного в элемент управления.

   // Boolean flag used to determine when a character other than a number is entered.
private:
   bool nonNumberEntered;

   // Handle the KeyDown event to determine the type of character entered into the control.
   void textBox1_KeyDown( Object^ /*sender*/, System::Windows::Forms::KeyEventArgs^ e )
   {
      // Initialize the flag to false.
      nonNumberEntered = false;

      // Determine whether the keystroke is a number from the top of the keyboard.
      if ( e->KeyCode < Keys::D0 || e->KeyCode > Keys::D9 )
      {
         // Determine whether the keystroke is a number from the keypad.
         if ( e->KeyCode < Keys::NumPad0 || e->KeyCode > Keys::NumPad9 )
         {
            // Determine whether the keystroke is a backspace.
            if ( e->KeyCode != Keys::Back )
            {
               // A non-numerical keystroke was pressed.
               // Set the flag to true and evaluate in KeyPress event.
               nonNumberEntered = true;
            }
         }
      }
      //If shift key was pressed, it's not a number.
      if (Control::ModifierKeys == Keys::Shift) {
         nonNumberEntered = true;
      }
   }

   // This event occurs after the KeyDown event and can be used to prevent
   // characters from entering the control.
   void textBox1_KeyPress( Object^ /*sender*/, System::Windows::Forms::KeyPressEventArgs^ e )
   {
      // Check for the flag being set in the KeyDown event.
      if ( nonNumberEntered)
      {         // Stop the character from being entered into the control since it is non-numerical.
         e->Handled = true;
      }
   }
// Boolean flag used to determine when a character other than a number is entered.
private bool nonNumberEntered = false;

// Handle the KeyDown event to determine the type of character entered into the control.
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    // Initialize the flag to false.
    nonNumberEntered = false;

    // Determine whether the keystroke is a number from the top of the keyboard.
    if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
    {
        // Determine whether the keystroke is a number from the keypad.
        if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
        {
            // Determine whether the keystroke is a backspace.
            if(e.KeyCode != Keys.Back)
            {
                // A non-numerical keystroke was pressed.
                // Set the flag to true and evaluate in KeyPress event.
                nonNumberEntered = true;
            }
        }
    }
    //If shift key was pressed, it's not a number.
    if (Control.ModifierKeys == Keys.Shift) {
        nonNumberEntered = true;
    }
}

// This event occurs after the KeyDown event and can be used to prevent
// characters from entering the control.
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    // Check for the flag being set in the KeyDown event.
    if (nonNumberEntered)
    {
        // Stop the character from being entered into the control since it is non-numerical.
        e.Handled = true;
    }
}
 ' Boolean flag used to determine when a character other than a number is entered.
 Private nonNumberEntered As Boolean = False


 ' Handle the KeyDown event to determine the type of character entered into the control.
 Private Sub textBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) _
      Handles textBox1.KeyDown
     ' Initialize the flag to false.
     nonNumberEntered = False
   
     ' Determine whether the keystroke is a number from the top of the keyboard.
     If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then
         ' Determine whether the keystroke is a number from the keypad.
         If e.KeyCode < Keys.NumPad0 OrElse e.KeyCode > Keys.NumPad9 Then
             ' Determine whether the keystroke is a backspace.
             If e.KeyCode <> Keys.Back Then
                 ' A non-numerical keystroke was pressed. 
                 ' Set the flag to true and evaluate in KeyPress event.
                 nonNumberEntered = True
             End If
         End If
     End If
     'If shift key was pressed, it's not a number.
     If Control.ModifierKeys = Keys.Shift Then
         nonNumberEntered = true
     End If
 End Sub


 ' This event occurs after the KeyDown event and can be used 
 ' to prevent characters from entering the control.
 Private Sub textBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) _
     Handles textBox1.KeyPress
     ' Check for the flag being set in the KeyDown event.
     If nonNumberEntered = True Then
         ' Stop the character from being entered into the control since it is non-numerical.
         e.Handled = True
     End If
 End Sub

Комментарии

Класс Keys содержит константы для обработки ввода клавиатуры. Члены перечисления "Ключи" состоят из ключевого кода и набора модификаторов, объединенных в одно целочисленное значение. В интерфейсе программирования приложений Win32 (API) значение ключа имеет две половины с битами высокого порядка, содержащими код ключа (который совпадает с кодом виртуального ключа Windows), а биты низкого порядка, представляющие модификаторы ключей, такие как клавиши SHIFT, CONTROL и ALT.

Предупреждение

Не используйте значения в этом перечислении для объединенных побитовых операций. Значения перечисления не являются взаимоисключающими.

Note

Это перечисление не позволяет проверить, активируются ли ключи CAPS LOCK или NUM LOCK. Чтобы определить, активируются ли эти ключи, можно использовать один из следующих методов:

  • IsKeyLocked Вызовите метод Control класса.

  • Для более точного управления используйте функции API Windows GetKeyState, GetAsyncKeyState или GetKeyboardState, определенные в user32.dll, для этого. Дополнительные сведения о вызове собственных функций см. в разделе "Использование неуправляемых функций DLL".

В следующей таблице показаны ключевые значения кода, представленные двумя перечисленными значениями, представляющими как общие ключи изготовителя оборудования (OEM), так и более конкретные связи клавиатуры США.

Шестнадцатеричное значение Клавиатура США Общее OEM
БА OemSemicolon Oem1
BF OemQuestion Oem2
C0 Oemtilde Oem3
База данных OemOpenBrackets Oem4
DC OemPipe Oem5
DD OemCloseBrackets Oem6
ДЕ OemQuotes Oem7
E2 OemBackslash Oem102

Предостережение

Для .NET Framework 2.0 добавлен элемент IMEAccept, заменяющий предыдущую запись, IMEAceept, которая была неправильно написана. Более ранняя версия была сохранена для обратной совместимости, но она может быть удалена в будущих версиях .NET.

Применяется к

См. также раздел