方法 : Smartphone の Back キーをオーバーライドする

更新 : 2007 年 11 月

ms172543.alert_note(ja-jp,VS.90).gifメモ :

Smartphone アプリケーション間の移動では、Back キーの機能が重要になります。ほとんどの場合、Back キーの既定の移動動作を変更することは、Smartphone のユーザー インターフェイスのガイドラインに反します。いつこの機能をオーバーライドするかは、慎重に判断してください。

ゲームなどの Smartphone アプリケーションでは、Back キーをカスタマイズできます。次の表に示すように、Back キーの操作は、キーの押されるコンテキストに応じて行われます。

Back キーの操作

コンテキスト

モーダル ダイアログ ボックスをキャンセルします。

常時。

ショートカット メニューをキャンセルします。

常時。

バックスペース操作を行います。

テキスト ボックスのような編集可能なコントロールや、編集可能なカスタム コントロールにフォーカスがあるとき。

z オーダーで次のウィンドウに移動します。

フォームやカスタム コントロールにフォーカスがあるときは、Back キーによって KeyPress イベントが発生します。例で示すように、このイベントを処理して、独自の機能を備えることができます。

このイベントを処理しない場合は、フォーカスが z オーダーで次のウィンドウに移動します。

フォーム、編集できないコントロール (オプション ボタンなど)、編集できないカスタム コントロールにフォーカスがあるとき。

メニュー バーがあるかどうかに関係なく、Back キーの操作は同じです。フォームに MainMenu コンポーネントが含まれている場合は、メニュー バーが存在します。

使用例

次のコード例に、Back キーのカスタム機能の実装方法を示します。フォームまたはカスタム コントロールで Back キーが押されると、KeyPress イベントが発生します。このとき、KeyChar の値は ESC キー (27) になります。イベント処理コードでは、ESC キー値が発生したかどうかを判断します。発生した場合は、Handled プロパティを true に設定して、既定の Back キーの操作をキャンセルします。イベントの引数が処理されない場合は、Back キーが 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