Control.Focus(FocusState) Método

Definición

Intenta establecer el foco en el control.

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

Parámetros

value
FocusState

Especifica cómo se estableció el foco, como un valor de la enumeración.

Devoluciones

Boolean

bool

True si el foco se estableció en el control o el foco ya estaba en el control. false si el control no se puede centrar.

Ejemplos

En este ejemplo, hacer clic en un botón "Editar" hace que el foco se establezca en un TextBox, por lo que el estado de enfoque mediante programación se pasa al método 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);
}

Comentarios

Si llama a este método en con Control un isTabStop establecido falseen , la llamada se omitirá y el foco no se moverá y la llamada devolverá false.

No se puede quitar el foco de un control llamando a este método con Unfocused como parámetro . Este valor no está permitido y provoca una excepción. Para quitar el foco de un control, establezca el foco en otro control.

Normalmente, se pasa FocusState.Programmatic como parámetro para indicar el control obtenido el foco a través de una llamada deliberada al método Focus. Por ejemplo, si hacer clic en un botón "Editar" hace que el foco se establezca en un TextBox, use el estado de enfoque mediante programación .

Pase FocusState.Pointer si está estableciendo el foco como resultado directo de una interacción de puntero. Pase FocusState.Keyboard como parámetro si está estableciendo el foco como resultado de una interacción del teclado, como una secuencia de tabulación o una pulsación de teclas. Por ejemplo, si va a implementar una tecla ItemsControl y controlador presiona para permitir que el usuario mueva el foco entre los elementos del control, use el estado de foco teclado al llamar al foco en el controlador de pulsación de teclas.

Notas de las versiones anteriores

Nota

En Windows 8, cuando FocusState es Programmatic, el objeto visual de foco del teclado se muestra incluso si el método anterior de entrada era puntero. En Windows 8.1, cuando se llama a Focus (FocusState.Programmatic), el elemento FocusState anterior, puntero oTeclado, se conserva para que se muestre el objeto visual de foco correcto. Esto significa que si compruebas el valor de la propiedad FocusState después de llamar a Focus (FocusState.Programmatic), la propiedad FocusState tendrá un valor de Pointer o Keyboard.

En una aplicación compilada para Windows 8, pero que se ejecuta en Windows 8.1, se conserva el comportamiento del Windows 8. El valor de la propiedad FocusState es Programmatic y se muestra el objeto visual de foco del teclado.

Se aplica a

Consulte también