2012-12-14 2 views
8

메뉴 시스템의 다양한 버튼에 액세스하기 위해 (C# .net에서) 개발중인 프로그램의 시퀀스 바로 가기를 갖고 싶습니다. 예를 들어메뉴의 키보드 시퀀스 단축키

: O

비주얼 스튜디오 하였다 Ctrl 키 + W, O

먼저, 사용자가 Ctrl 키 + W을 누를 것이다이 사용 그것의 꽤 많은 방법에 대한 메뉴 바로 가기입니다. 나는 그러나 메뉴를 편집하고 때

, 나는 단 하나의 바로 가기 Ctrl 키 + W하거나 O로 제한 해요, 내가 그들을 시퀀스 수 없습니다.

기존 프레임 워크에서 가능합니까?

답변

2

간단하게 당신이 할 수 있습니다 :

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (previousKeyEvent != null) 
    { 
    if (previousKeyEvent.Modifiers == Keys.Control && previousKeyEvent.KeyCode == Keys.W && e.KeyCode == Keys.O) 
    { 
     MessageBox.Show("Ctrl + W then O"); 
    } 
    else 
    { 
     MessageBox.Show("Not handled"); 
     previousKeyEvent = null; 
    } 
    else 
    previousKeyEvent = e; 
    } 
} 

  • 단일 키 조합을 고려 - 이전 키 이벤트의 범위를없는 사람 취급.
  • visual studio처럼 사용자 입력을 기다리고 있음을 보여주는 라벨입니다.
  • ShortCutKeyDisplayString 속성을 사용하여 메뉴 항목 옆에 사용자 지정 바로 가기를 표시합니다.
+0

이것은 불행히도 내가하고자하는 것보다 구현하는 데 더 많은 노력이 필요합니다. 나는 메뉴에서 키보드 단축키로 표시하지 않는다는 사실을 고려하지 않았 더라면 고려해봤을 것이다. – Randomman159

+0

@ Randomman159 당신이해야 할 일을 성취하기위한 노력을 기울이지 않으려는 경우 - 개발자로서 자신이 설정 한 많은 작업으로는별로 멀지 않을 것입니다. – LukeHennerley

+0

그건 내가 의미하는 바가 거의 없습니다. 나는 다시 말하려고 노력할 것이다. 이 문제의 우선 순위 중 하나는 메뉴의 항목 옆에 셔츠 컷을 표시하는 것이므로 반복적으로 사용하면 바로 가기가 나타납니다. 귀하의 솔루션으로,이 우선 순위를 통합하지 않습니다, 만약 내가 그것을 구현했다, 그것은 일시적인 것입니다. 대용량 (대용량)의 조합 키가 필요한 상황에서 임시 해결책으로는 무리가있는 것처럼 보입니다. 런타임시 메뉴에 표시된 바로 가기를 수정하는 방법이있는 경우이 솔루션이 유용 할 것입니다. – Randomman159