문제

나는 갇히고있다 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)

이것은 일반적인 키 점검과 함께 당신이 찾는 답을 줄 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top