Вы также можете попробовать: Keyboard.IsKeyDown();
метод, чтобы проверить, нажата ли конкретная клавиша, например:
bool isKeyPressed = Keyboard.IsKeyDown(Key.LeftAlt);
Это похоже на предыдущий ответ, но это собственный метод .NET, поэтомуне требуется импортировать какие-либо функции.
Похожий вопрос был задан здесь: Обрабатывать KeyDown во время перетаскивания.Или событие keydown не рабочее , но было предложение сделать его похожим на событие.
ОБНОВЛЕНИЕ
Первое решение работает только в WPF,Если вы хотите проверить состояния клавиш-модификаторов , существует метод, использующий свойство Form.ModifierKeys
, которое должно корректно работать в WinForms.В примере показано, как проверить, нажаты ли клавиши alt (left alt) и ctrl :
if (Form.ModifierKeys == (Keys.Alt | Keys.Control))
{
//TODO: insert your code here
}