2013-02-21 3 views
2

9 개의 버튼이있는 "홈"화면이 있습니다. 버튼의 모든 텍스트 속성은 다음과 같이 설정됩니다. & R이 디스플레이에 밑줄이 그어 지도록 반환합니다.KeyPress 이벤트 C#

홈 화면에서 R 키를 누르면 반품 화면이 표시됩니다. 이것은 내가 가지고있는 것입니다 :

private void frmHome_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)Keys.R) 
    { 
     frmReturns R = new frmReturns(empid); 
     R.Show(); 
     this.Hide(); 
     e.Handled = true; 
    } 
} 

그러나 그것은 절대적으로 아무것도하지 않습니다. 누군가 제발 도와 줄 수 있니?

+0

어떻게 동작합니까? 이벤트가 전혀 실행되지 않습니까? 화재가 발생하고 If 조건이 충족되지 않습니까? – dutzu

+0

이 유형의 기능과 관련된 다른 모든 게시물을 확인해야합니다. 예를 들면 이것처럼 @stackoverflow.com/questions/5048748/how-to-set-hotkeys-for-a-winform – dutzu

+0

@dutzu도 이벤트를 트리거하지 않습니다. –

답변

3

당신은 그렇지 누른 키의 이벤트가 아니라 기본 형태, 형태의 일부 내부 통제에 발생합니다 true

this.KeyPreview = true; 

에 양식의 KeyPreview 속성을 설정해야합니다.

또한 대/소문자를 구분합니다. e.KeyChar == (char)Keys.RR에만 작동하지만 r에는 작동하지 않습니다.

if(char.ToUpper(e.KeyChar) == (char)Keys.R) 
+0

감사합니다. KeyPreview 이벤트가없는 것으로 나타났습니다. 장치 응용 프로그램 개발. 나는 대안이 필요해. –

+0

@Wernervanden Compact Framework 버전은 무엇입니까? –

+0

@ MarkHall Compact Framework v2.0 –

0

은이 게시물은 비슷한 맥락에서 생각 :이 비슷한 짓을 한 CTRL + S to submit form and all inputs

그것은 작업을 수행합니다. 작업을 완료하기 전에 우연히 페이지를 리다이렉트 (redirect)하는 히트 r을 입력하고 싶지 않으므로 더 많은 입력이 필요할 수 있습니다.