UIElement.Focus メソッド


この要素にフォーカスを設定することを試みます。Attempts to set focus to this element.

 virtual bool Focus();
public bool Focus ();
abstract member Focus : unit -> bool
override this.Focus : unit -> bool
Public Function Focus () As Boolean



この要素にキーボード フォーカスと論理フォーカスの両方が設定された場合は true。論理フォーカスのみが設定された場合、またはこのメソッドの呼び出しによってフォーカスの変更が強制されない場合は falsetrue if keyboard focus and logical focus were set to this element; false if only logical focus was set to this element, or if the call to this method did not force the focus to change.


次の例では、Nameによって参照される TextBox にフォーカスを設定し、TextBox内のカーソルの位置を調整します。The following example sets focus to a TextBox referenced by Name, and then adjusts the position of the cursor within the TextBox.

void OnClickMoveToStart(object sender, RoutedEventArgs e)
    tbPositionCursor.Select(0, 0);
Private Sub OnClickMoveToStart(ByVal sender As Object, ByVal e As RoutedEventArgs)

    tbPositionCursor.Select(0, 0)

End Sub


フォーカスを設定できるようにするには、FocusableIsEnabled を両方とも trueする必要があります。To be focusable, Focusable and IsEnabled must both be true.

要素がフォーカス可能で有効な場合でも、Focus preview イベントは特定のツリーで処理される可能性があり、その要素にフォーカスすることはできません (複合コントロールなど)。Even if the element is focusable and valid, the Focus preview events may be processed in a specific tree, and focus on that element may not be allowed (for example, in a composite control). このような場合、このメソッドは falseを返します。In such a case, this method returns false.

一般的に、フォーカスは、キーボードフォーカスと論理フォーカスという2つの異なる概念によって制御されます。In general, focus is controlled by two different concepts: keyboard focus and logical focus. これらの2つの概念は、常に同じであるとは限りません。These two concepts are not always the same. 詳細については、「フォーカスの概要」と「入力の概要」を参照してください。For more information, see Focus summary and Input Overview.

Focus を呼び出すと trueが返される場合、IsKeyboardFocusedIsKeyboardFocusWithintrueます。If calling Focus returns true, IsKeyboardFocused and IsKeyboardFocusWithin are also true.

関連するプロパティがまだ trueていない場合、Focusを呼び出すと、次の1つ以上のイベントが次の順序で発生します。 PreviewLostKeyboardFocusPreviewGotKeyboardFocus (ソースは新しいフォーカスターゲット)、IsKeyboardFocusedChangedIsKeyboardFocusWithinChangedLostKeyboardFocusGotKeyboardFocus (ソースは新しいフォーカスターゲット) です。If the related properties are not already true, when you call Focus, one or more of the following events are raised in the following order: PreviewLostKeyboardFocus, PreviewGotKeyboardFocus (source is the new focus target), IsKeyboardFocusedChanged, IsKeyboardFocusWithinChanged, LostKeyboardFocus, GotKeyboardFocus (source is the new focus target).

この呼び出しを成功させるには、アプリケーション内の他の要素が前にフォーカスを持っている必要があります。In order for this call to be successful, some other element in the application needed to have focus previously.