I am catching a MouseDown
event on a control, which gives me a MouseEventArgs
object in the signature. Now I want to be able to tell if the user was holding down the "Shift" or "Control" key when they clicked. But the MouseEventArgs
object doesn't contain any keyboard information!
What's the easiest way of telling whether the keyboard Shift/Ctrl keys were being held at the time of the click?
Use the Control.ModifierKeys property to see what's pressed. For example:
private void Form1_MouseClick(object sender, MouseEventArgs e) {
if (Control.ModifierKeys == Keys.Control) {
Console.WriteLine("Ctrl+Click");
}
}
Other modifiers are Keys.Alt
and Keys.Shift
. Find combinations with, say, (Keys.Control | Keys.Shift)
.
In C#, you can check using -
Keyboard.IsKeyDown(Key.LeftShift) or key.RightShift
http://msdn.microsoft.com/en-us/library/system.windows.input.keyboard.iskeydown.aspx
http://msdn.microsoft.com/en-us/library/system.windows.input.key.aspx
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With