Вопрос программерам.

C# ShortCut Shift + NumPad

Как в C# словить shift + NumPad4 (или вообще NumPadХ)
Работает:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
* if (e.Control && e.KeyCode == Keys.NumPad4) - Работает на ура (CTRL + 4, ловит)
* if (e.KeyCode == Keys.S && e.Shift) - Работает на ура (SHIFT + S, ловит)
}

Не работает:
* if (e.KeyCode == Keys.NumPad4 && e.Shift)

Спасибо за помощь.
Ответы:
возможно, что у NumPad4 со Shift имеет свой отдельный код.
сделайте проверку: при нажатии такой комбинации - пусть выведет код...
Нажатие Shift при включенном NumLock временно его отключает. То есть ловить надо коды, которые поступают при выключенном NumLock. Например, Keys.NumPad4 превращается в Keys.Left.
Согласен с ise-dvp. Попробуйте подебажить - выводите коды в том виде, в котором они прилетают на обработчик.
Всем спасибо за ответы.
Дело в том, что при нажатии Shift + NumPad4 (при включенном NumLock) происходит три события KeyDown.
Жмем Shift - код Keys.Shift
Жмем NumPad4 - код Keys.Left - то есть нажатый шифт отключает NumLock (временно!)
Отпускаем Shift или NumPad4 - событие KeyDown с кодом той кнопки, которая НЕ была отпущена.
2  Catlion  


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.