방법: Smartphone 뒤로 키 재정의
업데이트: 2007년 11월
참고: |
---|
뒤로 키 기능은 Smartphone 응용 프로그램 간의 탐색을 위한 중요한 기능입니다. 대부분의 경우 뒤로 키의 기본 탐색 동작을 변경하는 것은 Smartphone 사용자 인터페이스 지침에 맞지 않습니다. 따라서 이 기능을 재정의하려고 할 때는 신중해야 합니다. |
게임 등의 Smartphone 응용 프로그램에서 뒤로 키를 사용자 지정할 수 있습니다. 키는 다음 표의 설명과 같이 키 누름 컨텍스트에 따라 작동합니다.
뒤로 키 작업 |
컨텍스트 |
---|---|
모달 대화 상자를 취소합니다. |
항상 |
바로 가기 메뉴를 취소합니다. |
항상 |
백스페이스 작업을 수행합니다. |
포커스가 텍스트 상자와 같은 편집 가능한 컨트롤 또는 편집 가능한 사용자 지정 컨트롤에 있는 경우 |
z 순서에 따라 다음 창으로 이동합니다. 포커스가 폼 또는 사용자 지정 컨트롤에 있는 경우 뒤로 키는 예제에 설명된 것처럼 사용자 고유의 기능을 제공하도록 처리할 수 있는 KeyPress 이벤트를 발생시킵니다. 이벤트를 처리하지 않으면 포커스는 z 순서에 따라 다음 창으로 이동합니다. |
포커스가 폼이나 라디오 단추 등의 편집 불가능한 컨트롤 또는 편집 불가능한 사용자 지정 컨트롤에 있는 경우 |
뒤로 키는 메뉴 모음이 있는지 여부에 관계없이 같은 방식으로 작동합니다. 폼에 MainMenu 구성 요소가 있으면 메뉴 모음이 있는 것입니다.
예제
다음 코드 예제에서는 사용자 지정 뒤로 키 기능을 구현하는 방법을 보여 줍니다. 폼이나 사용자 지정 컨트롤에서 뒤로 키를 누르면 ESC 키와 같은 KeyChar 값(27)의 KeyPress 이벤트가 발생합니다. 이벤트 처리 코드에서 ESC 키 값이 발생했는지 확인합니다. 발생한 경우 Handled 속성을 true로 설정하여 기본 뒤로 키 작업을 취소합니다. 이벤트 인수가 처리되지 않으면 뒤로 키는 z 순서에 따라 다음 창으로 이동합니다.
Visual C# 사용자는 폼의 생성자에 KeyPress 이벤트에 대한 이벤트 처리기를 정의해야 합니다.
// Connect an event handler to the KeyPress event
this.KeyPress += new KeyPressEventHandler(OnKeyPress);
Private Sub keypressed(ByVal o As [Object], _
ByVal e As KeyPressEventArgs) Handles MyBase.KeyPress
' Determine if ESC key value is raised.
If e.KeyChar = ChrW(Keys.Escape) Then
' Handle the event to provide your own functionality.
e.Handled = True
' Add your event handling code here.
MessageBox.Show("Custom back key functionality.")
End If
End Sub
private void OnKeyPress(object sender, KeyPressEventArgs ke)
{
// Determine if ESC key value is pressed.
if (ke.KeyChar == (Char)Keys.Escape)
{
// Handle the event to provide functionality.
ke.Handled = true;
// Add your event handling code here.
MessageBox.Show("Back key was pressed.");
}
}
코드 컴파일
이 예제에는 다음과 같은 네임스페이스에 대한 참조가 필요합니다.