2011-08-16 5 views
0

시작하는 방법. 예를 들어 게임을 만들 때 controlls를 추가 할 때 폼에 포커스가 없을 때 폼의 키 이벤트를 실행하는 방법과 컨트롤의 일부에서 this.Focus() 또는 this를 호출 할 때 어떻게해야합니까? 선택(), 아무 일도 일어나지 않지만 컨트롤을 사용하지 않고 빈 폼을 사용하면 작동합니다 (이벤트가 응답 함). 예를 들어 2 개의 단추가 있고 button1.focus()를 호출하고 키를 누르면 button1의 이벤트 핸들러는 (단지 그것) adn을 호출 한 다음 button2.Focus()를 호출하면 button2에 응답합니다. 어떻게 포커스가 컨트롤을 분산 시키나요? 양고기는 자동으로 텍스트 상자에 초점을 맞추기 위해 한 번 클릭해야하지만, 양식을 클릭하면 양식에 포커스가 이동하지 않습니다.C#의 KeyPress, KeyDown 및 KeyUp 이벤트에 대한 문제

저는 키 이벤트에 대한 경험이 거의 없으므로 사용 방법과 기능이 어떻게 작동하는지에 대해 설명해주십시오.

PS : 긴 questin

+0

질문 나누기를 고려하십시오. 그렇게하면 대답하기가 더 쉽습니다. –

+0

내 일반적인 의문은 그들이 어떻게 기능하고 사용하는지 (이벤트) – Bosak

+0

예, 알고 있습니다. 내 생각은 여전히 ​​똑같은 개념을 만지는 두 개의 개별 질문이기 때문에 여전히 권장 사항입니다. =) –

답변

2

당신은 키 이벤트에 반응을 양식을 가지고 true로 Form.KeyPreview을 설정할 수 있습니다 죄송합니다.

+0

그래서 true로 설정하면 포커스가 버튼이나 다른 어떤 것에서 폼이 이벤트 핸들러를 호출합니까? 포커스가 버튼에 있다면 버튼은 키 이벤트 핸들러를 호출합니까? – Bosak

+0

KeyPreview가 true이면 양식이 먼저 이벤트에 반응하지만 양식이나 유사한 이벤트에 대해서는 KeyDown을 구현해야합니다. –

+0

그래서 양식의 keyDown 이벤트를 구현하고 keyPreview가 true이고 buton이 있고 포커스가 해당 단추에 있고 해당 단추가 양식의 keyDonw 이벤트 처리기와 다른 경우에는 먼저 폼의 이벤트 처리기가 호출하는 키를 누르면 그런 다음 버튼 (또는 포커스가 있고 키 이벤트 핸들러가있는 다른 컨트롤)을 클릭합니다. – Bosak

관련 문제