Elmo Elmo - 7 months ago 51
Vb.net Question

Detect if Modifier Key is Pressed in KeyRoutedEventArgs Event

I have the following code:

public void tbSpeed_KeyDown(object sender, KeyRoutedEventArgs e)
{
e.Handled = !((e.Key >= 48 && e.Key <= 57) || (e.Key >= 96 && e.Key <= 105) || (e.Key == 109) || (e.Key == 189));
}


Is there any way to detect if any modifier key like shift is being pressed ?

Answer

Use GetKeyState. e.g.

var state = CoreWindow.GetForCurrentThread().GetKeyState(VirtualKey.Shift);
return (state & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down;

Note: For Alt, you would use VirtualKey.Menu.

Comments