путаница между использованием Keys.Shift и Keys.ShiftKey - PullRequest
0 голосов
/ 28 июня 2011

C # WinForms: у меня есть такой код:

if (GetAsyncKeyState((int)Keys.ShiftKey) != 0)
{
    nShift = (nShift | 1);
}

Если я изменяю if на Keys.Shift, тогда он работает правильно, как табуляция вперед, но если тогда он ломает табуляцию назад,Клавиши TAB + SHIFT на клавиатуре.но я хочу, чтобы работали вкладки вперед и назад.Как я могу изменить это, чтобы работать правильно?

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

Значение ShiftKey определяет, произошло ли событие из-за нажатия клавиши Shift / вверх / и т. Д. Значение Shift - это модификатор , который можно комбинировать с другими клавишами.

Таким образом, если значение равно A + Shift, то это означает, что пользователь нажал клавишу A, удерживая клавишу Shift.

Вы не даете достаточно информации, чтобы указать, почему табуляция будет затронута, но я подозреваю, что вы не обрабатываете случай, когда модификаторы Control и Shift указаны правильно (вместе с клавишей Tab). Или вы обрабатываете событие и не допускаете нормального табуляции.

0 голосов
/ 28 июня 2011

.net разница между клавишами вправо и влево - это ответ. мы должны сказать Keys.LShiftKey и Keys.RShiftKey

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