File: System\Windows\Forms\Input\Keys.cs
Web Access
Project: src\src\System.Windows.Forms\src\System.Windows.Forms.csproj (System.Windows.Forms)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.ComponentModel;
using System.Drawing.Design;
 
namespace System.Windows.Forms;
 
/// <summary>
///  Specifies key codes and modifiers.
/// </summary>
[Flags]
[TypeConverter(typeof(KeysConverter))]
[Editor($"System.Windows.Forms.Design.ShortcutKeysEditor, {AssemblyRef.SystemDesign}", typeof(UITypeEditor))]
public enum Keys
{
    /// <summary>
    ///  The bit mask to extract a key code from a key value.
    /// </summary>
    KeyCode = 0x0000FFFF,
 
    /// <summary>
    ///  The bit mask to extract modifiers from a key value.
    /// </summary>
    Modifiers = unchecked((int)0xFFFF0000),
 
    /// <summary>
    ///  No key pressed.
    /// </summary>
    None = 0x00,
 
    /// <summary>
    ///  The left mouse button.
    /// </summary>
    LButton = 0x01,
 
    /// <summary>
    ///  The right mouse button.
    /// </summary>
    RButton = 0x02,
 
    /// <summary>
    ///  The CANCEL key.
    /// </summary>
    Cancel = 0x03,
 
    /// <summary>
    ///  The middle mouse button (three-button mouse).
    /// </summary>
    MButton = 0x04,
 
    /// <summary>
    ///  The first x mouse button (five-button mouse).
    /// </summary>
    XButton1 = 0x05,
 
    /// <summary>
    ///  The second x mouse button (five-button mouse).
    /// </summary>
    XButton2 = 0x06,
 
    /// <summary>
    ///  The BACKSPACE key.
    /// </summary>
    Back = 0x08,
 
    /// <summary>
    ///  The TAB key.
    /// </summary>
    Tab = 0x09,
 
    /// <summary>
    ///  The CLEAR key.
    /// </summary>
    LineFeed = 0x0A,
 
    /// <summary>
    ///  The CLEAR key.
    /// </summary>
    Clear = 0x0C,
 
    /// <summary>
    ///  The RETURN key.
    /// </summary>
    Return = 0x0D,
 
    /// <summary>
    ///  The ENTER key.
    /// </summary>
    Enter = Return,
 
    /// <summary>
    ///  The SHIFT key.
    /// </summary>
    ShiftKey = 0x10,
 
    /// <summary>
    ///  The CTRL key.
    /// </summary>
    ControlKey = 0x11,
 
    /// <summary>
    ///  The ALT key.
    /// </summary>
    Menu = 0x12,
 
    /// <summary>
    ///  The PAUSE key.
    /// </summary>
    Pause = 0x13,
 
    /// <summary>
    ///  The CAPS LOCK key.
    /// </summary>
    Capital = 0x14,
 
    /// <summary>
    ///  The CAPS LOCK key.
    /// </summary>
    CapsLock = 0x14,
 
    /// <summary>
    ///  The IME Kana mode key.
    /// </summary>
    KanaMode = 0x15,
 
    /// <summary>
    ///  The IME Hanguel mode key.
    /// </summary>
    HanguelMode = 0x15,
 
    /// <summary>
    ///  The IME Hangul mode key.
    /// </summary>
    HangulMode = 0x15,
 
    /// <summary>
    ///  The IME Junja mode key.
    /// </summary>
    JunjaMode = 0x17,
 
    /// <summary>
    ///  The IME Final mode key.
    /// </summary>
    FinalMode = 0x18,
 
    /// <summary>
    ///  The IME Hanja mode key.
    /// </summary>
    HanjaMode = 0x19,
 
    /// <summary>
    ///  The IME Kanji mode key.
    /// </summary>
    KanjiMode = 0x19,
 
    /// <summary>
    ///  The ESC key.
    /// </summary>
    Escape = 0x1B,
 
    /// <summary>
    ///  The IME Convert key.
    /// </summary>
    IMEConvert = 0x1C,
 
    /// <summary>
    ///  The IME NonConvert key.
    /// </summary>
    IMENonconvert = 0x1D,
 
    /// <summary>
    ///  The IME Accept key.
    /// </summary>
    IMEAccept = 0x1E,
 
    /// <summary>
    ///  The IME Accept key.
    /// </summary>
    IMEAceept = IMEAccept,
 
    /// <summary>
    ///  The IME Mode change request.
    /// </summary>
    IMEModeChange = 0x1F,
 
    /// <summary>
    ///  The SPACEBAR key.
    /// </summary>
    Space = 0x20,
 
    /// <summary>
    ///  The PAGE UP key.
    /// </summary>
    Prior = 0x21,
 
    /// <summary>
    ///  The PAGE UP key.
    /// </summary>
    PageUp = Prior,
 
    /// <summary>
    ///  The PAGE DOWN key.
    /// </summary>
    Next = 0x22,
 
    /// <summary>
    ///  The PAGE DOWN key.
    /// </summary>
    PageDown = Next,
 
    /// <summary>
    ///  The END key.
    /// </summary>
    End = 0x23,
 
    /// <summary>
    ///  The HOME key.
    /// </summary>
    Home = 0x24,
 
    /// <summary>
    ///  The LEFT ARROW key.
    /// </summary>
    Left = 0x25,
 
    /// <summary>
    ///  The UP ARROW key.
    /// </summary>
    Up = 0x26,
 
    /// <summary>
    ///  The RIGHT ARROW key.
    /// </summary>
    Right = 0x27,
 
    /// <summary>
    ///  The DOWN ARROW key.
    /// </summary>
    Down = 0x28,
 
    /// <summary>
    ///  The SELECT key.
    /// </summary>
    Select = 0x29,
 
    /// <summary>
    ///  The PRINT key.
    /// </summary>
    Print = 0x2A,
 
    /// <summary>
    ///  The EXECUTE key.
    /// </summary>
    Execute = 0x2B,
 
    /// <summary>
    ///  The PRINT SCREEN key.
    /// </summary>
    Snapshot = 0x2C,
 
    /// <summary>
    ///  The PRINT SCREEN key.
    /// </summary>
    PrintScreen = Snapshot,
 
    /// <summary>
    ///  The INS key.
    /// </summary>
    Insert = 0x2D,
 
    /// <summary>
    ///  The DEL key.
    /// </summary>
    Delete = 0x2E,
 
    /// <summary>
    ///  The HELP key.
    /// </summary>
    Help = 0x2F,
 
    /// <summary>
    ///  The 0 key.
    /// </summary>
    D0 = 0x30, // 0
 
    /// <summary>
    ///  The 1 key.
    /// </summary>
    D1 = 0x31, // 1
 
    /// <summary>
    ///  The 2 key.
    /// </summary>
    D2 = 0x32, // 2
 
    /// <summary>
    ///  The 3 key.
    /// </summary>
    D3 = 0x33, // 3
 
    /// <summary>
    ///  The 4 key.
    /// </summary>
    D4 = 0x34, // 4
 
    /// <summary>
    ///  The 5 key.
    /// </summary>
    D5 = 0x35, // 5
 
    /// <summary>
    ///  The 6 key.
    /// </summary>
    D6 = 0x36, // 6
 
    /// <summary>
    ///  The 7 key.
    /// </summary>
    D7 = 0x37, // 7
 
    /// <summary>
    ///  The 8 key.
    /// </summary>
    D8 = 0x38, // 8
 
    /// <summary>
    ///  The 9 key.
    /// </summary>
    D9 = 0x39, // 9
 
    /// <summary>
    ///  The A key.
    /// </summary>
    A = 0x41,
 
    /// <summary>
    ///  The B key.
    /// </summary>
    B = 0x42,
 
    /// <summary>
    ///  The C key.
    /// </summary>
    C = 0x43,
 
    /// <summary>
    ///  The D key.
    /// </summary>
    D = 0x44,
 
    /// <summary>
    ///  The E key.
    /// </summary>
    E = 0x45,
 
    /// <summary>
    ///  The F key.
    /// </summary>
    F = 0x46,
 
    /// <summary>
    ///  The G key.
    /// </summary>
    G = 0x47,
 
    /// <summary>
    ///  The H key.
    /// </summary>
    H = 0x48,
 
    /// <summary>
    ///  The I key.
    /// </summary>
    I = 0x49,
 
    /// <summary>
    ///  The J key.
    /// </summary>
    J = 0x4A,
 
    /// <summary>
    ///  The K key.
    /// </summary>
    K = 0x4B,
 
    /// <summary>
    ///  The L key.
    /// </summary>
    L = 0x4C,
 
    /// <summary>
    ///  The M key.
    /// </summary>
    M = 0x4D,
 
    /// <summary>
    ///  The N key.
    /// </summary>
    N = 0x4E,
 
    /// <summary>
    ///  The O key.
    /// </summary>
    O = 0x4F,
 
    /// <summary>
    ///  The P key.
    /// </summary>
    P = 0x50,
 
    /// <summary>
    ///  The Q key.
    /// </summary>
    Q = 0x51,
 
    /// <summary>
    ///  The R key.
    /// </summary>
    R = 0x52,
 
    /// <summary>
    ///  The S key.
    /// </summary>
    S = 0x53,
 
    /// <summary>
    ///  The T key.
    /// </summary>
    T = 0x54,
 
    /// <summary>
    ///  The U key.
    /// </summary>
    U = 0x55,
 
    /// <summary>
    ///  The V key.
    /// </summary>
    V = 0x56,
 
    /// <summary>
    ///  The W key.
    /// </summary>
    W = 0x57,
 
    /// <summary>
    ///  The X key.
    /// </summary>
    X = 0x58,
 
    /// <summary>
    ///  The Y key.
    /// </summary>
    Y = 0x59,
 
    /// <summary>
    ///  The Z key.
    /// </summary>
    Z = 0x5A,
 
    /// <summary>
    ///  The left Windows logo key (Microsoft Natural Keyboard).
    /// </summary>
    LWin = 0x5B,
 
    /// <summary>
    ///  The right Windows logo key (Microsoft Natural Keyboard).
    /// </summary>
    RWin = 0x5C,
 
    /// <summary>
    ///  The Application key (Microsoft Natural Keyboard).
    /// </summary>
    Apps = 0x5D,
 
    /// <summary>
    ///  The Computer Sleep key.
    /// </summary>
    Sleep = 0x5F,
 
    /// <summary>
    ///  The 0 key on the numeric keypad.
    /// </summary>
    NumPad0 = 0x60,
 
    /// <summary>
    ///  The 1 key on the numeric keypad.
    /// </summary>
    NumPad1 = 0x61,
 
    /// <summary>
    ///  The 2 key on the numeric keypad.
    /// </summary>
    NumPad2 = 0x62,
 
    /// <summary>
    ///  The 3 key on the numeric keypad.
    /// </summary>
    NumPad3 = 0x63,
 
    /// <summary>
    ///  The 4 key on the numeric keypad.
    /// </summary>
    NumPad4 = 0x64,
 
    /// <summary>
    ///  The 5 key on the numeric keypad.
    /// </summary>
    NumPad5 = 0x65,
 
    /// <summary>
    ///  The 6 key on the numeric keypad.
    /// </summary>
    NumPad6 = 0x66,
 
    /// <summary>
    ///  The 7 key on the numeric keypad.
    /// </summary>
    NumPad7 = 0x67,
 
    /// <summary>
    ///  The 8 key on the numeric keypad.
    /// </summary>
    NumPad8 = 0x68,
 
    /// <summary>
    ///  The 9 key on the numeric keypad.
    /// </summary>
    NumPad9 = 0x69,
 
    /// <summary>
    ///  The Multiply key.
    /// </summary>
    Multiply = 0x6A,
 
    /// <summary>
    ///  The Add key.
    /// </summary>
    Add = 0x6B,
 
    /// <summary>
    ///  The Separator key.
    /// </summary>
    Separator = 0x6C,
 
    /// <summary>
    ///  The Subtract key.
    /// </summary>
    Subtract = 0x6D,
 
    /// <summary>
    ///  The Decimal key.
    /// </summary>
    Decimal = 0x6E,
 
    /// <summary>
    ///  The Divide key.
    /// </summary>
    Divide = 0x6F,
 
    /// <summary>
    ///  The F1 key.
    /// </summary>
    F1 = 0x70,
 
    /// <summary>
    ///  The F2 key.
    /// </summary>
    F2 = 0x71,
 
    /// <summary>
    ///  The F3 key.
    /// </summary>
    F3 = 0x72,
 
    /// <summary>
    ///  The F4 key.
    /// </summary>
    F4 = 0x73,
 
    /// <summary>
    ///  The F5 key.
    /// </summary>
    F5 = 0x74,
 
    /// <summary>
    ///  The F6 key.
    /// </summary>
    F6 = 0x75,
 
    /// <summary>
    ///  The F7 key.
    /// </summary>
    F7 = 0x76,
 
    /// <summary>
    ///  The F8 key.
    /// </summary>
    F8 = 0x77,
 
    /// <summary>
    ///  The F9 key.
    /// </summary>
    F9 = 0x78,
 
    /// <summary>
    ///  The F10 key.
    /// </summary>
    F10 = 0x79,
 
    /// <summary>
    ///  The F11 key.
    /// </summary>
    F11 = 0x7A,
 
    /// <summary>
    ///  The F12 key.
    /// </summary>
    F12 = 0x7B,
 
    /// <summary>
    ///  The F13 key.
    /// </summary>
    F13 = 0x7C,
 
    /// <summary>
    ///  The F14 key.
    /// </summary>
    F14 = 0x7D,
 
    /// <summary>
    ///  The F15 key.
    /// </summary>
    F15 = 0x7E,
 
    /// <summary>
    ///  The F16 key.
    /// </summary>
    F16 = 0x7F,
 
    /// <summary>
    ///  The F17 key.
    /// </summary>
    F17 = 0x80,
 
    /// <summary>
    ///  The F18 key.
    /// </summary>
    F18 = 0x81,
 
    /// <summary>
    ///  The F19 key.
    /// </summary>
    F19 = 0x82,
 
    /// <summary>
    ///  The F20 key.
    /// </summary>
    F20 = 0x83,
 
    /// <summary>
    ///  The F21 key.
    /// </summary>
    F21 = 0x84,
 
    /// <summary>
    ///  The F22 key.
    /// </summary>
    F22 = 0x85,
 
    /// <summary>
    ///  The F23 key.
    /// </summary>
    F23 = 0x86,
 
    /// <summary>
    ///  The F24 key.
    /// </summary>
    F24 = 0x87,
 
    /// <summary>
    ///  The NUM LOCK key.
    /// </summary>
    NumLock = 0x90,
 
    /// <summary>
    ///  The SCROLL LOCK key.
    /// </summary>
    Scroll = 0x91,
 
    /// <summary>
    ///  The left SHIFT key.
    /// </summary>
    LShiftKey = 0xA0,
 
    /// <summary>
    ///  The right SHIFT key.
    /// </summary>
    RShiftKey = 0xA1,
 
    /// <summary>
    ///  The left CTRL key.
    /// </summary>
    LControlKey = 0xA2,
 
    /// <summary>
    ///  The right CTRL key.
    /// </summary>
    RControlKey = 0xA3,
 
    /// <summary>
    ///  The left ALT key.
    /// </summary>
    LMenu = 0xA4,
 
    /// <summary>
    ///  The right ALT key.
    /// </summary>
    RMenu = 0xA5,
 
    /// <summary>
    ///  The Browser Back key.
    /// </summary>
    BrowserBack = 0xA6,
 
    /// <summary>
    ///  The Browser Forward key.
    /// </summary>
    BrowserForward = 0xA7,
 
    /// <summary>
    ///  The Browser Refresh key.
    /// </summary>
    BrowserRefresh = 0xA8,
 
    /// <summary>
    ///  The Browser Stop key.
    /// </summary>
    BrowserStop = 0xA9,
 
    /// <summary>
    ///  The Browser Search key.
    /// </summary>
    BrowserSearch = 0xAA,
 
    /// <summary>
    ///  The Browser Favorites key.
    /// </summary>
    BrowserFavorites = 0xAB,
 
    /// <summary>
    ///  The Browser Home key.
    /// </summary>
    BrowserHome = 0xAC,
 
    /// <summary>
    ///  The Volume Mute key.
    /// </summary>
    VolumeMute = 0xAD,
 
    /// <summary>
    ///  The Volume Down key.
    /// </summary>
    VolumeDown = 0xAE,
 
    /// <summary>
    ///  The Volume Up key.
    /// </summary>
    VolumeUp = 0xAF,
 
    /// <summary>
    ///  The Media Next Track key.
    /// </summary>
    MediaNextTrack = 0xB0,
 
    /// <summary>
    ///  The Media Previous Track key.
    /// </summary>
    MediaPreviousTrack = 0xB1,
 
    /// <summary>
    ///  The Media Stop key.
    /// </summary>
    MediaStop = 0xB2,
 
    /// <summary>
    ///  The Media Play Pause key.
    /// </summary>
    MediaPlayPause = 0xB3,
 
    /// <summary>
    ///  The Launch Mail key.
    /// </summary>
    LaunchMail = 0xB4,
 
    /// <summary>
    ///  The Select Media key.
    /// </summary>
    SelectMedia = 0xB5,
 
    /// <summary>
    ///  The Launch Application1 key.
    /// </summary>
    LaunchApplication1 = 0xB6,
 
    /// <summary>
    ///  The Launch Application2 key.
    /// </summary>
    LaunchApplication2 = 0xB7,
 
    /// <summary>
    ///  The Oem Semicolon key.
    /// </summary>
    OemSemicolon = 0xBA,
 
    /// <summary>
    ///  The Oem 1 key.
    /// </summary>
    Oem1 = OemSemicolon,
 
    /// <summary>
    ///  The Oem plus key.
    /// </summary>
    Oemplus = 0xBB,
 
    /// <summary>
    ///  The Oem comma key.
    /// </summary>
    Oemcomma = 0xBC,
 
    /// <summary>
    ///  The Oem Minus key.
    /// </summary>
    OemMinus = 0xBD,
 
    /// <summary>
    ///  The Oem Period key.
    /// </summary>
    OemPeriod = 0xBE,
 
    /// <summary>
    ///  The Oem Question key.
    /// </summary>
    OemQuestion = 0xBF,
 
    /// <summary>
    ///  The Oem 2 key.
    /// </summary>
    Oem2 = OemQuestion,
 
    /// <summary>
    ///  The Oem 3 key.
    /// </summary>
    Oem3 = 0xC0,
 
    /// <summary>
    ///  The Oem tilde key.
    /// </summary>
    Oemtilde = Oem3,
 
    /// <summary>
    ///  The Oem Open Brackets key.
    /// </summary>
    OemOpenBrackets = 0xDB,
 
    /// <summary>
    ///  The Oem 4 key.
    /// </summary>
    Oem4 = OemOpenBrackets,
 
    /// <summary>
    ///  The Oem Pipe key.
    /// </summary>
    OemPipe = 0xDC,
 
    /// <summary>
    ///  The Oem 5 key.
    /// </summary>
    Oem5 = OemPipe,
 
    /// <summary>
    ///  The Oem Close Brackets key.
    /// </summary>
    OemCloseBrackets = 0xDD,
 
    /// <summary>
    ///  The Oem 6 key.
    /// </summary>
    Oem6 = OemCloseBrackets,
 
    /// <summary>
    ///  The Oem 7 key.
    /// </summary>
    Oem7 = 0xDE,
 
    /// <summary>
    ///  The Oem Quotes key.
    /// </summary>
    OemQuotes = Oem7,
 
    /// <summary>
    ///  The Oem8 key.
    /// </summary>
    Oem8 = 0xDF,
 
    /// <summary>
    ///  The Oem 102 key.
    /// </summary>
    Oem102 = 0xE2,
 
    /// <summary>
    ///  The Oem Backslash key.
    /// </summary>
    OemBackslash = Oem102,
 
    /// <summary>
    ///  The PROCESS KEY key.
    /// </summary>
    ProcessKey = 0xE5,
 
    /// <summary>
    ///  The Packet KEY key.
    /// </summary>
    Packet = 0xE7,
 
    /// <summary>
    ///  The ATTN key.
    /// </summary>
    Attn = 0xF6,
 
    /// <summary>
    ///  The CRSEL key.
    /// </summary>
    Crsel = 0xF7,
 
    /// <summary>
    ///  The EXSEL key.
    /// </summary>
    Exsel = 0xF8,
 
    /// <summary>
    ///  The ERASE EOF key.
    /// </summary>
    EraseEof = 0xF9,
 
    /// <summary>
    ///  The PLAY key.
    /// </summary>
    Play = 0xFA,
 
    /// <summary>
    ///  The ZOOM key.
    /// </summary>
    Zoom = 0xFB,
 
    /// <summary>
    ///  A constant reserved for future use.
    /// </summary>
    NoName = 0xFC,
 
    /// <summary>
    ///  The PA1 key.
    /// </summary>
    Pa1 = 0xFD,
 
    /// <summary>
    ///  The CLEAR key.
    /// </summary>
    OemClear = 0xFE,
 
    /// <summary>
    ///  The SHIFT modifier key.
    /// </summary>
    Shift = 0x00010000,
 
    /// <summary>
    ///  The  CTRL modifier key.
    /// </summary>
    Control = 0x00020000,
 
    /// <summary>
    ///  The ALT modifier key.
    /// </summary>
    Alt = 0x00040000,
}