Skip to content

Latest commit

 

History

History
49 lines (42 loc) · 4.32 KB

how-to-determine-which-modifier-key-was-pressed.md

File metadata and controls

49 lines (42 loc) · 4.32 KB
title description ms.date dev_langs helpviewer_keywords ms.assetid
How to: Determine Which Modifier Key Was Pressed
Learn how to determine which modifier key has been pressed when you create an application that accepts user keystrokes.
03/30/2017
csharp
vb
cpp
keyboard input
shift keys
events [Windows Forms], mouse
Keys.ControlKey enumeration member
keys [Windows Forms], control keys
user input [Windows Forms], checking for keyboard
keys [Windows Forms], determining last pressed
keys [Windows Forms], shift keys
keys [Windows Forms], modifier keys
control keys
keys [Windows Forms], alt keys
alt keys
Keys.Shift enumeration member
events [Windows Forms], keyboard
keyboards [Windows Forms], keyboard input
Keys.Alt enumeration member
modifier keys
1e184048-0ae3-4067-a200-d4ba31dbc2cb

How to: Determine Which Modifier Key Was Pressed

When you create an application that accepts the user's keystrokes, you may also want to monitor for modifier keys such as the SHIFT, ALT, and CTRL keys. When a modifier key is pressed in combination with other keys, or with mouse clicks, your application can respond appropriately. For example, if the letter S is pressed, this may simply cause an "s" to appear on the screen, but if the keys CTRL+S are pressed, the current document may be saved. If you handle the xref:System.Windows.Forms.Control.KeyDown event, the xref:System.Windows.Forms.KeyEventArgs.Modifiers%2A property of the xref:System.Windows.Forms.KeyEventArgs received by the event handler specifies which modifier keys are pressed. Alternatively, the xref:System.Windows.Forms.KeyEventArgs.KeyData%2A property of xref:System.Windows.Forms.KeyEventArgs specifies the character that was pressed as well as any modifier keys combined with a bitwise OR. However, if you are handling the xref:System.Windows.Forms.Control.KeyPress event or a mouse event, the event handler does not receive this information. In this case, you must use the xref:System.Windows.Forms.Control.ModifierKeys%2A property of the xref:System.Windows.Forms.Control class. In either case, you must perform a bitwise AND of the appropriate xref:System.Windows.Forms.Keys value and the value you are testing. The xref:System.Windows.Forms.Keys enumeration offers variations of each modifier key, so it is important that you perform the bitwise AND with the correct value. For example, the SHIFT key is represented by xref:System.Windows.Forms.Keys.Shift, xref:System.Windows.Forms.Keys.ShiftKey, xref:System.Windows.Forms.Keys.RShiftKey and xref:System.Windows.Forms.Keys.LShiftKey The correct value to test SHIFT as a modifier key is xref:System.Windows.Forms.Keys.Shift. Similarly, to test for CTRL and ALT as modifiers you should use the xref:System.Windows.Forms.Keys.Control and xref:System.Windows.Forms.Keys.Alt values, respectively.

Note

Visual Basic programmers can also access key information through the xref:Microsoft.VisualBasic.Devices.Computer.Keyboard%2A property

To determine which modifier key was pressed

See also