방법: 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.");
    }
}

코드 컴파일

이 예제에는 다음과 같은 네임스페이스에 대한 참조가 필요합니다.

참고 항목

작업

방법: Smartphone 소프트 키 재정의

기타 리소스

Smartphone 개발 및 .NET Compact Framework