UIElement.Focus UIElement.Focus UIElement.Focus UIElement.Focus Method


この要素にフォーカスを設定することを試みます。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.


次の例では、フォーカスを設定、TextBoxによって参照されるName、し、内のカーソルの位置を調整、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プレビュー イベントが特定のツリーで処理され、(たとえば、複合コントロール) でその要素にフォーカスができない可能性があります。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返しますtrueIsKeyboardFocusedIsKeyboardFocusWithintrueします。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.