我在控件上捕获MouseDown
事件,它在签名中为我提供了一个MouseEventArgs
对象。现在我希望能够判断用户在单击时是否按住“Shift”或“Control”键。但MouseEventArgs
对象不包含任何键盘信息!
在点击时是否最简单的方法是告知键盘 Shift / Ctrl 键是否被保留?
答案 0 :(得分:32)
使用Controls.ModifierKeys属性查看按下的内容。例如:
private void Form1_MouseClick(object sender, MouseEventArgs e) {
if (Control.ModifierKeys == Keys.Control) {
Console.WriteLine("Ctrl+Click");
}
}
其他修饰符为Keys.Alt
和Keys.Shift
。查找与(Keys.Control | Keys.Shift)
。
答案 1 :(得分:3)
在C#中,您可以使用 -
进行检查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