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.");
}
}
編譯程式碼
這個範例需要參考下列命名空間: