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
继承
属性

字段

A 65

A 键。

Add 107

加号键。

Alt 262144

Alt 修改键。

Apps 93

应用程序键(Microsoft Natural Keyboard,人体工程学键盘)。

Attn 246

ATTN 键。

B 66

B 键。

Back 8

BACKSPACE 键。

BrowserBack 166

浏览器后退键。

BrowserFavorites 171

浏览器收藏键。

BrowserForward 167

浏览器前进键。

BrowserHome 172

浏览器主页键。

BrowserRefresh 168

浏览器刷新键。

BrowserSearch 170

浏览器搜索键。

BrowserStop 169

浏览器停止键。

C 67

C 键。

Cancel 3

Cancel 键。

Capital 20

CAPS LOCK 键。

CapsLock 20

CAPS LOCK 键。

Clear 12

CLEAR 键。

Control 131072

Ctrl 修改键。

ControlKey 17

CTRL 键。

Crsel 247

CRSEL 键。

D 68

D 键。

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 键。

Decimal 110

句点键。

Delete 46

DEL 键。

Divide 111

除号键。

Down 40

DOWN ARROW 键。

E 69

E 键。

End 35

END 键。

Enter 13

ENTER 键。

EraseEof 249

ERASE EOF 键。

Escape 27

ESC 键。

Execute 43

EXECUTE 键。

Exsel 248

EXSEL 键。

F 70

F 键。

F1 112

F1 键。

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 键。

F2 113

F2 键。

F20 131

F20 键。

F21 132

F21 键。

F22 133

F22 键。

F23 134

F23 键。

F24 135

F24 键。

F3 114

F3 键。

F4 115

F4 键。

F5 116

F5 键。

F6 117

F6 键。

F7 118

F7 键。

F8 119

F8 键。

F9 120

F9 键。

FinalMode 24

IME 最终模式键。

G 71

G 键。

H 72

H 键。

HanguelMode 21

IME Hanguel 模式键。 (为了保持兼容性而设置;使用 HangulMode

HangulMode 21

IME Hangul 模式键。

HanjaMode 25

IME Hanja 模式键。

Help 47

HELP 键。

Home 36

HOME 键。

I 73

I 键。

IMEAccept 30

IME 接受键,替换 IMEAceept

IMEAceept 30

IME 接受键。 已过时,请改用 IMEAccept

IMEConvert 28

IME 转换键。

IMEModeChange 31

IME 模式更改键。

IMENonconvert 29

IME 非转换键。

Insert 45

INS 键。

J 74

J 键。

JunjaMode 23

IME Junja 模式键。

K 75

K 键。

KanaMode 21

IME Kana 模式键。

KanjiMode 25

IME Kanji 模式键。

KeyCode 65535

从键值提取键代码的位屏蔽。

L 76

L 键。

LaunchApplication1 182

启动应用程序一键。

LaunchApplication2 183

启动应用程序二键。

LaunchMail 180

启动邮件键。

LButton 1

鼠标左按钮。

LControlKey 162

左 CTRL 键。

Left 37

LEFT ARROW 键。

LineFeed 10

LINEFEED 键。

LMenu 164

左 ALT 键。

LShiftKey 160

左 Shift 键。

LWin 91

左 Windows 徽标键 (Microsoft Natural Keyboard)。

M 77

M 键。

MButton 4

鼠标中按钮(三个按钮的鼠标)。

MediaNextTrack 176

媒体下一曲目键。

MediaPlayPause 179

媒体播放暂停键。

MediaPreviousTrack 177

媒体上一曲目键。

MediaStop 178

媒体停止键。

Menu 18

Alt 键。

Modifiers -65536

从键值提取修饰符的位屏蔽。

Multiply 106

乘号键。

N 78

N 键。

Next 34

PAGE DOWN 键。

NoName 252

留待将来使用的常数。

None 0

不按任何键。

NumLock 144

NUM LOCK 键。

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 键。

O 79

O 键。

Oem1 186

OEM 1 键。

Oem102 226

OEM 102 键。

Oem2 191

OEM 2 键。

Oem3 192

OEM 3 键。

Oem4 219

OEM 4 键。

Oem5 220

OEM 5 键。

Oem6 221

OEM 6 键。

Oem7 222

OEM 7 键。

Oem8 223

OEM 8 键。

OemBackslash 226

RT 102 键的键盘上的 OEM 尖括号或反斜杠键。

OemClear 254

CLEAR 键。

OemCloseBrackets 221

美式标准键盘上的 OEM 右括号键。

Oemcomma 188

任何国家/地区键盘上的 OEM 逗号键。

OemMinus 189

任何国家/地区键盘上的 OEM 减号键。

OemOpenBrackets 219

美式标准键盘上的 OEM 左括号键。

OemPeriod 190

任何国家/地区键盘上的 OEM 句号键。

OemPipe 220

美式标准键盘上的 OEM 管道键。

Oemplus 187

任何国家/地区键盘上的 OEM 加号键。

OemQuestion 191

美式标准键盘上的 OEM 问号键。

OemQuotes 222

美式标准键盘上的 OEM 单/双引号键。

OemSemicolon 186

美式标准键盘上的 OEM 分号键。

Oemtilde 192

美式标准键盘上的 OEM 波形符键。

P 80

P 键。

Pa1 253

PA1 键。

Packet 231

用于将 Unicode 字符当作键击传递。 Packet 键值是用于非键盘输入法的 32 位虚拟键值的低位字。

PageDown 34

PAGE DOWN 键。

PageUp 33

PAGE UP 键。

Pause 19

PAUSE 键。

Play 250

播放键。

Print 42

PRINT 键。

PrintScreen 44

PRINT SCREEN 键。

Prior 33

PAGE UP 键。

ProcessKey 229

Process Key 键。

Q 81

Q 键。

R 82

R 键。

RButton 2

鼠标右按钮。

RControlKey 163

右 CTRL 键。

Return 13

Return 键。

Right 39

RIGHT ARROW 键。

RMenu 165

右 ALT 键。

RShiftKey 161

右 Shift 键。

RWin 92

右 Windows 徽标键 (Microsoft Natural Keyboard)。

S 83

S 键。

Scroll 145

Scroll Lock 键。

Select 41

SELECT 键。

SelectMedia 181

选择媒体键。

Separator 108

分隔符键。

Shift 65536

Shift 修改键。

ShiftKey 16

Shift 键。

Sleep 95

计算机睡眠键。

Snapshot 44

PRINT SCREEN 键。

Space 32

SPACEBAR 键。

Subtract 109

减号键。

T 84

T 键。

Tab 9

TAB 键。

U 85

U 键。

Up 38

UP ARROW 键。

V 86

V 键。

VolumeDown 174

音量减小键。

VolumeMute 173

静音键。

VolumeUp 175

音量增大键。

W 87

W 键。

X 88

X 键。

XButton1 5

第一个 X 鼠标按钮(五个按钮的鼠标)。

XButton2 6

第二个 X 鼠标按钮(五个按钮的鼠标)。

Y 89

Y 键。

Z 90

Z 键。

Zoom 251

缩放键。

示例

下面的代码示例使用 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 == true )
      {         // 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 == true)
    {
        // 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 包含用于处理键盘输入的常量。 Keys 枚举的成员由一个键代码和一组修饰符组成一个整数值。 在 Win32 应用程序编程接口 (API) 键值有两半,高阶位包含密钥代码 (与 Windows 虚拟密钥代码) 相同,低序位表示键修饰符(如 SHIFT、CONTROL 和 ALT 键)。

警告

请勿将此枚举中的值用于组合的按位运算。 枚举中的值不互斥。

注意

此枚举无法测试当前是否激活 CAPS LOCK 或 NUM LOCK 密钥。 可以使用以下方法之一来确定这些密钥是否已激活:

  • 调用 IsKeyLocked 类的 Control 方法。

  • 若要进行精细控制,请使用 user32.dll 中定义的 Windows API 函数 GetKeyStateGetAsyncKeyState、 或 GetKeyboardState 来执行此操作。 有关调用本机函数的详细信息,请参阅 使用非托管 DLL 函数

下表显示了由两个枚举值表示的键代码值,表示常规原始设备制造商 (OEM) 键和更具体的美国键盘关联。

十六进制值 美制键盘 常规 OEM
BA OemSemicolon Oem1
BF OemQuestion Oem2
C0 Oemtilde Oem3
DB OemOpenBrackets Oem4
DC OemPipe Oem5
DD OemCloseBrackets Oem6
DE OemQuotes Oem7
E2 OemBackslash Oem102

注意

对于 .NET Framework 2.0,添加了一个成员 IMEAccept,该成员取代了拼写错误的上一项 IMEAceept。 为了向后兼容,已保留较旧版本,但在将来的 .NET Framework

适用于

另请参阅