UIElement.GotFocus 事件

定義

發生于 UIElement 收到焦點時。 此事件會以非同步方式引發,因此焦點可以在反升完成之前再次移動。

// Register
event_token GotFocus(RoutedEventHandler const& handler) const;

// Revoke with event_token
void GotFocus(event_token const* cookie) const;

// Revoke with event_revoker
UIElement::GotFocus_revoker GotFocus(auto_revoke_t, RoutedEventHandler const& handler) const;
public event RoutedEventHandler GotFocus;
function onGotFocus(eventArgs) { /* Your code */ }
uIElement.addEventListener("gotfocus", onGotFocus);
uIElement.removeEventListener("gotfocus", onGotFocus);
- or -
uIElement.ongotfocus = onGotFocus;
Public Custom Event GotFocus As RoutedEventHandler 
<uiElement GotFocus="eventhandler"/>

事件類型

備註

建議您盡可能使用 UIElement 焦點路由事件,而不是 FocusManager 事件。

一次只能有單一 UI 元素的焦點。

當另一個控制項失去焦點、應用程式檢視變更、使用者切換應用程式或使用者與系統互動時,控制項可以取得焦點,讓應用程式不再位於前景。

LostFocus 會在 GotFocus 之前引發。

如果您使用控制群組合或 UI 組合,並在 PanelGridView等容器上處理 GotFocus,則您可能想要檢查事件資料上的 OriginalSource ,以判斷組合中哪些元素實際收到焦點。

GotFocus 沒有任何特製化事件資料。 在處理 GotFocus 的位置,您可能會想要判斷它是否為造成元素取得焦點的使用者或應用程式程式碼。 若要在處理常式中判斷這一點,請將事件的 傳送者 轉換成 Control 物件,並檢查 FocusState

鍵盤焦點特別與鍵盤事件處理相關,因為只有目前以鍵盤為主的 UIElement 可以是 KeyUpKeyDown 按鍵事件的來源。 應用程式可能會呼叫 Focus 作為初始化動作,以便整個應用程式中的索引鍵事件可用來偵測存取或快速鍵。 如需詳細資訊,請參閱鍵盤互動

GotFocus 是路由事件。 如需路由事件概念的詳細資訊,請參閱 事件和路由事件概觀

特定Windows 執行階段控制項可能會有 GotFocus 事件的類別型處理。 如果是,控制項可能具有 OnGotFocus方法的覆寫。 一般而言,事件會標示為由類別處理常式處理,而且不會引發 GotFocus 事件,以供該控制項上的任何使用者程式碼處理常式處理。 控制項可能會處理事件,以載入顯示焦點矩形的視覺狀態屬性。

控制項的焦點矩形是一個重要視覺元件,可藉由識別目前的焦點元素,並指出使用者位於應用程式 UI 的索引標籤序列中的位置,來輔助輔助協助工具。 在某些情況下,焦點動作的 FocusState 是否應該顯示可見焦點指標。

如需事件類別型處理運作方式的詳細資訊,請參閱 事件和路由事件概觀。 如需索引標籤順序和協助工具的詳細資訊,請參閱 鍵盤協助工具

適用於

另請參閱