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.


次の例では、に 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


フォーカスを設定できるようにするには、 Focusable との IsEnabled 両方がである必要があり 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 出す true IsKeyboardFocused と、と IsKeyboardFocusWithin もに true なります。If calling Focus returns true, IsKeyboardFocused and IsKeyboardFocusWithin are also true.

関連するプロパティがまだ存在しない場合、を true 呼び出すと、 Focus 次の1つ以上のイベントが次の順序で発生します。 PreviewLostKeyboardFocus PreviewGotKeyboardFocus (ソースは新しいフォーカスターゲット)、 IsKeyboardFocusedChanged 、、 IsKeyboardFocusWithinChanged LostKeyboardFocusGotKeyboardFocus (ソースは新しいフォーカスターゲット) です。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.