Как определить, нажата ли Shift в событии MouseDown?
Я улавливаю событие MouseDown
на элементе управления, которое дает мне объект MouseEventArgs
в сигнатуре. Теперь я хочу узнать, удерживал ли пользователь нажатие клавиши "Shift" или "Control" при нажатии. Но объект MouseEventArgs
не содержит информации о клавиатуре!
Какой самый простой способ сказать, удерживались ли клавиши клавиатуры Shift/Ctrl во время клика?
Ответы
Ответ 1
Используйте свойство 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)
.
Ответ 2
В С# вы можете проверить использование -
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