Control.Focus(FocusState) 메서드

정의

컨트롤에 포커스를 설정하려고 시도합니다.

public:
 virtual bool Focus(FocusState value) = Focus;
bool Focus(FocusState const& value);
public bool Focus(FocusState value);
function focus(value)
Public Function Focus (value As FocusState) As Boolean

매개 변수

value
FocusState

포커스를 열거형 값으로 설정하는 방법을 지정합니다.

반환

Boolean

bool

포커스가 컨트롤로 설정되었거나 포커스가 컨트롤에 이미 있는 경우 true입니다. 컨트롤에 포커스를 맞출 수 없는 경우 false입니다.

예제

이 예제에서 "편집" 단추를 클릭하면 TextBox에서 포커스가 설정되므로 프로그래밍 방식 포커스 상태가 Focus 메서드로 전달됩니다.

<StackPanel>
    <Button Content="Edit" Click="Button_Click"/>
    <TextBox x:Name="EditorTextBox" IsReadOnly="True"/>
</StackPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
    EditorTextBox.IsReadOnly = false;
    EditorTextBox.Focus(FocusState.Programmatic);
}

설명

IsTabStop이 로 설정된 false에서 Control 이 메서드를 호출하면 호출이 무시되고 포커스가 이동되지 않고 호출이 를 반환false합니다.

를 매개 변수로 사용하여 이 메서드 Unfocused 를 호출하여 컨트롤에서 포커스를 제거할 수 없습니다. 이 값은 허용되지 않으며 예외가 발생합니다. 컨트롤에서 포커스를 제거하려면 포커스를 다른 컨트롤로 설정합니다.

일반적으로 FocusState.Programmatic 을 매개 변수로 전달하여 Focus 메서드를 의도적으로 호출하여 포커스를 얻은 컨트롤을 나타냅니다. 예를 들어 "편집" 단추를 클릭하면 TextBox에서 포커스가 설정되는 경우 프로그래밍 방식 포커스 상태를 사용합니다.

포인터 상호 작용의 직접적인 결과로 포커스를 설정하는 경우 FocusState.Pointer 를 전달합니다. 탭 시퀀스 또는 키 누름과 같은 키보드 상호 작용의 결과로 포커스를 설정하는 경우 FocusState.Keyboard 를 매개 변수로 전달합니다. 예를 들어 ItemsControl 을 구현하고 키 누름을 처리하여 사용자가 컨트롤의 항목 간에 포커스를 이동할 수 있도록 하는 경우 키 누름 처리기에서 포커스를 호출할 때 키보드 포커스 상태를 사용합니다.

이전 버전에 대한 참고 사항

참고

Windows 8 FocusState프로그래밍 방식인 경우 이전 입력 방법이 포인터인 경우에도 키보드 포커스 시각적 개체가 표시됩니다. Windows 8.1 포커스(FocusState.Programmatic)를 호출할 때 포인터 또는 키보드 중 이전의 FocusState는 올바른 포커스 시각적 개체가 표시되도록 유지됩니다. 즉, Focus(FocusState.Programmatic)를 호출한 후 FocusState 속성의 값을 검사 경우 FocusState 속성의 값은 Pointer 또는 Keyboard입니다.

Windows 8 컴파일되지만 Windows 8.1 실행되는 앱에서는 Windows 8 동작이 유지됩니다. FocusState 속성 값은 프로그래밍 방식이며 키보드 포커스 시각적 개체가 표시됩니다.

적용 대상

추가 정보