2011-11-30 10 views
5

Visual Studio 2010을 사용하여 Visual C# 응용 프로그램을 만들고 일부 응용 프로그램을 만들려면 응용 프로그램의 기본 설정에 텍스트 상자 입력을 사용하는 키보드 바로 가기를 사용자 지정하십시오. 키보드 입력을 기록하는 방법과 사용자 응용 프로그램 설정에 저장하는 방법을 이해하지만이 기능이있는 입력 컨트롤을 찾을 수 없습니다.사용자 지정 키보드 바로 가기 입력 만들기

e.e. 이 같은 :

enter image description here

하지만 윈도우 양식을 사용하여 (참고 : 위의 앱 스토어에서 OS X에 대한 분배하다에서이다).

처리 할 수있는 기본 제공 기능이 있습니까? 사용할 수있는 유용한 라이브러리 또는 맞춤 입력이 있습니까?

그렇지 않으면 다음과 같이 구현하는 방법에 대한 제안 사항이 있습니까?

솔루션 : 바스 B의 대답과 다른 논리를 사용

: 위의

private void fShortcut_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode != Keys.Back) 
    { 
     Keys modifierKeys = e.Modifiers; 
     Keys pressedKey = e.KeyData^modifierKeys; //remove modifier keys 

     if (modifierKeys != Keys.None && pressedKey != Keys.None) 
     { 
      //do stuff with pressed and modifier keys 
      var converter = new KeysConverter(); 
      fShortcut.Text = converter.ConvertToString(e.KeyData); 
      //At this point, we know a one or more modifiers and another key were pressed 
      //modifierKeys contains the modifiers 
      //pressedKey contains the other pressed key 
      //Do stuff with results here 
     } 
    } 
    else 
    { 
     e.Handled = false; 
     e.SuppressKeyPress = true; 

     fShortcut.Text = ""; 
    } 
} 

유효한 바로 가기 조합을 선택하여 입력 할 때 알 수있는 방법 모두 보조 키의 경우 , 그리고 다른 키가 눌려진다.

+0

VS2010 또는 응용 프로그램의 키보드 단축키를 찾으십니까? –

+0

내 응용 프로그램에 대해 – WilHall

답변

5

당신은 사용자가 예를 들어, KeyDown 이벤트를 다음 텍스트 상자에 원하는 바로 가기를 입력 처리 할 수 ​​:

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     Keys modifierKeys = e.Modifiers; 

     Keys pressedKey = e.KeyData^modifierKeys; //remove modifier keys 

     //do stuff with pressed and modifier keys 
   var converter = new KeysConverter(); 
     textBox1.Text = converter.ConvertToString(e.KeyData); 
} 

편집 : 업데이트 Stecya의 답변을 포함 할 수 있습니다.

+0

이것은 완벽하게 작동했습니다. 나는 이것을 다른 논리와 함께 사용하여 작업을 완료했습니다. 질문을 최종 해결책으로 업데이트하겠습니다. – WilHall

관련 문제