C#: KeyEventArgs의 KeyData에서 올바른 키를 누르기
-
21-08-2019 - |
문제
나는 갇히고있다 KeyDown
이벤트와 나는 현재 키가 누르는지 확인할 수 있어야합니다. Ctrl 키 + 옮기다 + 중 ?
나는 내가 사용해야한다는 것을 안다 e.KeyData
~로부터 KeyEventArgs
,, Keys
열거와 열거 깃발과 비트가있는 무언가이지만 조합을 확인하는 방법에 대해서는 잘 모르겠습니다.
해결책
당신은 그것을 사용해야합니다 수정 자 KeyEventArgs 클래스의 속성.
같은 것 :
//asumming e is of type KeyEventArgs (such as it is
// on a KeyDown event handler
// ..
bool ctrlShiftM; //will be true if the combination Ctrl + Shift + M is pressed, false otherwise
ctrlShiftM = ((e.KeyCode == Keys.M) && // test for M pressed
((e.Modifiers & Keys.Shift) != 0) && // test for Shift modifier
((e.Modifiers & Keys.Control) != 0)); // test for Ctrl modifier
if (ctrlShiftM == true)
{
Console.WriteLine("[Ctrl] + [Shift] + M was pressed");
}
다른 팁
이것을 사용하기가 가장 쉬운 것 같습니다.
if(e.KeyData == (Keys.Control | Keys.G))
다음과 유사한 기술을 사용하여 확인할 수 있습니다.
if(Control.ModifierKeys == Keys.Control && Control.ModifierKeys == Keys.Shift)
이것은 일반적인 키 점검과 함께 당신이 찾는 답을 줄 것입니다.
제휴하지 않습니다 StackOverflow