2016-02-23 8 views
0

Мне нужно сочетание двух клавиш в моем KeyDownEvent в C#, но не знаю, как его создать, поскольку мне это нужно для определенной функции, вероятно, LShiftKey + F4, но как ее написать?C# KeyDownEvent, как назначить комбинацию из двух клавиш?

Как: private void KeyDownEvent(int keyId, string keyName) case Keys.F4: .............. case Keys.F5: .............. case Keys.F6: .............. case Keys.LShiftKey+F7:

код является неполным, как мне просто нужно знать, как писать комбинацию двух клавиш (?).

Если вам нужна дополнительная информация, просто дайте слово. :)

Привет

+0

KeyDown не совсем подходящее место для хордовой ключи проверки. Однако, одна вещь, которую вы могли бы сделать, это проверить состояние левой клавиши сдвига в другом ключевом обработчике. –

ответ

3

Вы можете использовать статическое свойство ModifierKeys, чтобы выяснить, если сдвиг вниз или нет:

case F7: 
    if(ModifierKeys == Keys.Shift) 
     // now you do your Shift-F7 logic 
    break; 
-1

Самый простой способ сделать это использовать класс клавиатурой после .net 3.0

private void KeyDownEvent(int keyId, string keyNum) 
{ 
    case Keys.F7: 
     if(Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift) 
    { 
     //do stuff 
    } 
} 

Другой способ сделать это сделать логическое значение за пределами метода (глобальный) что вы можете повернуться, когда нажата клавиша. Вам также нужно будет подключиться к KeyUpEvent, чтобы вернуть это логическое значение в false, когда оно будет выпущено. Вот пример:

bool shiftKeyPressed = false 

private void KeyDownEvent(int keyId, string keyName) 
{ 
    case Keys.LShiftKey: shiftKeyPressed = true; 
    case Keys.F7: 
     if(shiftKeyPressed){//do stuff} 
} 

private void KeyUpEvent(int keyId, string keyName) 
{ 
    case Keys.LShiftKey: shiftKeyPressed = false; 
} 
+1

Обратите внимание, что предыдущий находится в Presentation Foundation (WPF), который может быть или не быть допустимым импортом. – Blindy