Как определить, нажата ли 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).