Share via


HOW TO:覆寫 Smartphone 返回鍵

更新:2007 年 11 月

注意事項:

請注意,返回鍵功能對於在 Smartphone 應用程式之間巡覽非常重要。在大部分情況下,變更返回鍵預設巡覽行為的方式,和 Smartphone 的使用者介面方針正好是相反的。請小心判斷何時要覆寫這項功能。

您可以自訂 Smartphone 應用程式中的返回鍵,例如為遊戲設定的時候。如下表所示,返回鍵的作用會視按下按鍵時的情況而定。

返回鍵作用

內容

取消強制回應對話方塊。

永遠。

取消快速鍵功能表。

永遠。

退回一格。

當焦點位於可編輯的控制項 (例如文字方塊) 或可編輯的自訂控制項時。

依疊置順序 (Z-order) 巡覽至下一個視窗。

請注意,當焦點位於表單或自訂控制項時,返回鍵會引發 KeyPress 事件,您可以處理該事件以提供自訂的功能,如範例中所示。

如果您不處理該事件,焦點會依疊置順序巡覽至下一個視窗。

當焦點位於表單、非可編輯的控制項 (例如選項按鈕) 或非可編輯的自訂控制項時。

無論是否有功能表列,返回鍵的運作方式都相同。如果表單包含 MainMenu 元件,即代表有功能表列存在。

範例

下列程式碼範例會說明如何實作自訂返回鍵功能。在表單或自訂控制項上按下返回鍵時,會引發 KeyPress 事件,KeyChar 值等於 ESC 鍵 (27)。在事件處理程式碼中,判斷是否引發了 ESC 鍵值。如果引發了該值,請將 Handled 屬性設為 true,取消預設的返回鍵作用。如果未處理事件引數,返回鍵會依疊置順序巡覽至下一個視窗。

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

編譯程式碼

這個範例需要參考下列命名空間:

請參閱

工作

HOW TO:覆寫 Smartphone 螢幕按鍵

其他資源

Smartphone 開發和 .NET Compact Framework