FrameworkElement.OnGotFocus(RoutedEventArgs) メソッド


未処理の GotFocus イベントが、その経路上でこの要素に到達するたびに呼び出されます。Invoked whenever an unhandled GotFocus event reaches this element in its route.

 override void OnGotFocus(System::Windows::RoutedEventArgs ^ e);
protected override void OnGotFocus (System.Windows.RoutedEventArgs e);
override this.OnGotFocus : System.Windows.RoutedEventArgs -> unit
Protected Overrides Sub OnGotFocus (e As RoutedEventArgs)



イベント データを格納している RoutedEventArgsThe RoutedEventArgs that contains the event data.


基本要素によって公開されている他のいくつかのメソッドとは異なり、OnGotFocus には既定の実装があります。Unlike some other On* methods exposed by the base elements, OnGotFocus does have a default implementation. 具体的には、OnGotFocusの基本要素の次のレベルで、null 実装をオーバーライドする実装があります。Specifically, it has an implementation that overrides the null implementation in the next level of base element down, OnGotFocus. 呼び出された場合、OnGotFocus は、キーボードフォーカスが原因で現在の要素からイベントが発生した場合に、この要素に適切なフォーカス動作を設定します。When invoked, OnGotFocus sets appropriate focus behavior on this element in cases where the event originated from the current element due to keyboard focus. OnGotFocus ハンドラーは、フォーカスが現在の要素に設定されている場合でも、イベント引数を処理済みとしてマークしません。The OnGotFocus handler does not mark the event arguments as handled, even when focus is set to the current element. イベントのソースが (現在の要素ではなく) ツリー内の別の要素であった場合、ハンドラーは何も行いません。If the event's source was another element in the tree (not the current element), the handler does nothing.

このメソッドは、要素の既定のフォーカス動作を変更するためにオーバーライドできます。ただし、この方法でフォーカス動作を変更すると、要素にフォーカスを設定することができないため、より適切に処理することができます (「Focusable」を参照してください)。You can override this method in order to change the default focus behavior on your element, but be aware that changing focus behavior in this way might be better accomplished by not allowing the element to be focusable at all (see Focusable).

注意 (継承者)

引数で処理されるイベントをマークする場合は、要素ツリー内の他の親要素でのイベント処理の結果に注意する必要があります。If you intend to mark the event handled in the arguments, you should be aware of consequences on event handling in other parent elements in the element tree. このハンドラーはバブルルーティングを使用するイベントで動作するため、イベント引数ごとに現在の sender にフォーカスを設定することは適切ではない可能性があります。Because this handler acts on an event with a bubbling routing, setting the focus to the current sender per the event arguments may not be appropriate. フォーカスは、特定のコントロールの複合に応じて、複合子要素または親要素に移動する必要がある場合があります。Focus might need to go to either a composite child element or to a parent element, depending on the compositing of certain controls. したがって、フォーカスイベントを処理済みとしてマークすることが推奨されるのは、イベントがルーティングされるビジュアルツリー全体が、作成したコントロールの複合の一部である場合のみです。Therefore marking a focus event as handled is only recommended if the entirety of the visual tree that the event is routing through is part of compositing of a control that you authored.