开发者

How to tell if Shift is being pressed in a MouseDown event?

I am catching a MouseDown event on a control, which gives me a M开发者_Python百科ouseEventArgs 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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜