Как определить, нажимается ли Shift в событии MouseDown? - PullRequest
18 голосов
/ 13 сентября 2010

Я фиксирую событие MouseDown в элементе управления, которое дает мне объект MouseEventArgs в подписи. Теперь я хочу сказать, удерживал ли пользователь клавишу «Shift» или «Control» при нажатии. Но объект MouseEventArgs не содержит информации о клавиатуре!

Какой самый простой способ узнать, удерживались ли клавиши клавиатуры Shift / Ctrl во время нажатия?

Ответы [ 2 ]

32 голосов
/ 13 сентября 2010

Используйте свойство 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).

3 голосов
/ 13 сентября 2010

В 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...