You can know the state of the Shift, Alt and Control keys at any time, not just from inside a Keyxxx event. The shared property Control.ModifierKeys returns a bit coded value that identifies which of those keys are pressed, and you can use the And bit operator if a specific key is pressed. The following code shows an example:
Dim isShiftPressed As Boolean = (Control.ModifierKeys And Keys.Shift) <> 0Dim isAltPressed As Boolean = (Control.ModifierKeys And Keys.Alt) <> 0Dim isControlPressed As Boolean = (Control.ModifierKeys And Keys.Control) <> 0MessageBox.Show("Shift pressed: " & isShiftPressed & Environment.NewLine & _ "Alt pressed:" & isAltPressed & Environment.NewLine & "Control pressed:" & _ isControlPressed)