2014-01-29 11 views
-1

작동하지 않습니다하지만 난이 코드를 실행하는 방법을 모른다 :에서 KeyDown KeyEventArgs 내가 내 프로그램의 단축키를 포함하는 것을 시도하고있다

private void Form_KeyDown(object data, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Insert) 
    { 
     timer1.Stop(); 
    } 
} 
+0

VS를 사용하여 속성 창에서 이벤트. –

+0

바로 가기 키를 어떻게 의미합니까? 열 때 Ctrl + O, 파일 메뉴에 대해 Alt + F를 사용 하시겠습니까? – Brandon

+0

@Brandon 그렇습니다. 특히이 경우에는 타이머를 멈추게 INSERT 키를 설정하려고합니다. – user3002135

답변

1

는 해당 이벤트를 바인딩 적이 있습니까? 소리가 나지 않는 것 같습니다.

public Form() 
{ 
    this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form_KeyDown); 
} 

당신은 이벤트 그런 식으로 결합, 또는 Visual Studio의 속성 창에서 KeyDown 이벤트를 더블 클릭 할 수 있습니다.

포인트 앤 클릭 방식을 선택한 경우 이벤트는 Form.Designer.cs 파일로 바인딩됩니다.

전체 코드 생성자 및 방법은 다음과 같을 것이다 :

public Form() 
{ 
    this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form_KeyDown); 
} 

private void Form_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Insert) 
    { 
     timer1.Stop(); 
    } 
} 
+0

나는 왜 모르지만 나는 insert를 누르면 아무 일도 일어나지 않는다. 어쩌면 이걸 바보로 만들 겠어./ – user3002135

+0

@ user3002135 - 당신은'public Form1() {...} '생성자 안에'InitializeComponents()'뒤에'this.KeyDown + = ....'을 추가한다. – scheien

+0

i 여전히 효과가 없었습니다. 그것은 내가 발견 한 모든 지시와 그 중 아무도 일한 후에 모든 것을 시도했기 때문에 그것은 나에게 이상한 것 같습니다 ... – user3002135

1

그냥 폼에이 코드를 붙여 & 복사 (I 쉽게이 사용을 찾을 수)

protected override void OnKeyDown(KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Insert) 
    { 
     timer1.Stop(); 
    } 
} 

편집

진실 : 0123으로 설정하는 것을 잊지 마세요. 폼의 속성. 내 댓글 당

+0

이것은 나를 위해 일하지 않습니다. – user3002135

+0

@ user3002135 물론 작동합니다. '이것은 작동하지 않습니다.'어떤 정보도 제공하지 않습니다. 어떻게 테스트 했습니까? 오류가 있었습니까? 코드는 어디에 있습니까? – EZI

+0

잘 키를 사용할 때 보이드를 입력하지 마십시오. – user3002135

0

:

나는 삽입 키에 대한 확실하지 않다,하지만 당신은 니모닉 찾고 있습니다. 양식에서 단축키로 사용할 문자 앞에 "&"문자를 사용하십시오. 예를 들어 "열기"라는 버튼, 메뉴, 레이블 등의 경우 텍스트를 "& 열기"로 변경하면 원하는대로 처리됩니다.

편집 :이 키는 단일 키가 아니라 Alt + yourCharacter 키 조합을 바인딩합니다. 특수 키 (삽입, F1 등 ...)를 수행하기 위해 특별히 찾고 있다면 다른 대답 (나는 @ QtX의 솔루션이 원하는 것을 할 것이라고 생각한다)에서 솔루션을 구현해야 할 것이다.