Partage via


Control.Focus(FocusState) Méthode

Définition

Tente de définir le focus sur le contrôle.

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

Paramètres

value
FocusState

Spécifie la façon dont le focus a été défini, comme valeur de l’énumération.

Retours

Boolean

bool

true si le focus a été défini sur le contrôle ou si le focus était déjà sur le contrôle. false si le contrôle n’est pas focusable.

Exemples

Dans cet exemple, le fait de cliquer sur un bouton « Modifier » entraîne la définition du focus sur une zone de texte, de sorte que l’état du focus programmatique est passé à la méthode 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);
}

Remarques

Si vous appelez cette méthode sur un Control avec un IsTabStop défini falsesur , l’appel est ignoré et le focus ne se déplace pas, et l’appel retourne false.

Vous ne pouvez pas supprimer le focus d’un contrôle en appelant cette méthode avec Unfocused comme paramètre. Cette valeur n’est pas autorisée et provoque une exception. Pour supprimer le focus d’un contrôle, définissez le focus sur un autre contrôle.

Vous transmettez généralement FocusState.Program comme paramètre pour indiquer le focus obtenu par le contrôle via un appel délibéré à la méthode Focus. Par exemple, si le fait de cliquer sur un bouton « Modifier » entraîne la définition du focus sur une zone de texte, utilisez l’état Focus programmatique .

Passez FocusState.Pointer si vous définissez le focus comme résultat direct d’une interaction de pointeur. Passez FocusState.Keyboard comme paramètre si vous définissez le focus à la suite d’une interaction au clavier, comme une séquence de tabulation ou un appui sur la touche. Par exemple, si vous implémentez un contrôle ItemsControl et que vous gérez les appuis sur les touches pour permettre à l’utilisateur de déplacer le focus entre les éléments du contrôle, utilisez l’état De focus clavier lorsque vous appelez Focus dans votre gestionnaire de touches.

Remarques pour les versions précédentes

Notes

Dans Windows 8, lorsque FocusState est Programmatique, le visuel focus clavier s’affiche même si la méthode d’entrée précédente était pointeur. Dans Windows 8.1, lorsque vous appelez Focus (FocusState.Programmatique), le FocusState précédent, pointeur ou clavier, est conservé afin que le visuel de focus approprié s’affiche. Cela signifie que si vous case activée la valeur de la propriété FocusState après avoir appelé Focus (FocusState.Programmatique), la propriété FocusState aura la valeur Pointeur ou Clavier.

Dans une application compilée pour Windows 8, mais exécutée dans Windows 8.1, le comportement Windows 8 est conservé. La valeur de la propriété FocusState est Programmatique et le visuel focus clavier s’affiche.

S’applique à

Voir aussi