Freigeben über


Control.Focus(FocusState) Methode

Definition

Versucht, den Fokus auf das Steuerelement festzulegen.

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

Parameter

value
FocusState

Gibt an, wie der Fokus als Wert der Enumeration festgelegt wurde.

Gibt zurück

Boolean

bool

TRUE , wenn der Fokus auf das Steuerelement festgelegt wurde oder der Fokus bereits auf dem Steuerelement lag. false , wenn das Steuerelement nicht fokussierbar ist.

Beispiele

In diesem Beispiel bewirkt das Klicken auf eine Schaltfläche "Bearbeiten", dass der Fokus auf ein TextBox-Objekt festgelegt wird, sodass der Programmfokuszustand an die Focus-Methode übergeben wird.

<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);
}

Hinweise

Wenn Sie diese Methode für ein Control aufrufen, wobei ein IsTabStop auf falsefestgelegt ist, wird der Aufruf ignoriert, und der Fokus wird nicht verschoben, und der Aufruf gibt zurück false.

Sie können den Fokus nicht aus einem Steuerelement entfernen, indem Sie diese Methode mit Unfocused als Parameter aufrufen. Dieser Wert ist nicht zulässig und verursacht eine Ausnahme. Um den Fokus von einem Steuerelement zu entfernen, legen Sie den Fokus auf ein anderes Steuerelement fest.

In der Regel übergeben Sie FocusState.Programmatic als Parameter, um das Steuerelement anzugeben, das den Fokus durch einen absichtlichen Aufruf der Focus-Methode erhalten hat. Wenn z. B. durch Klicken auf eine Schaltfläche "Bearbeiten" der Fokus auf einem TextBox-Element festgelegt wird, verwenden Sie den Programmfokuszustand .

Übergeben Sie FocusState.Zeiger , wenn Sie den Fokus als direktes Ergebnis einer Zeigerinteraktion festlegen. Übergeben Sie FocusState.Keyboard als Parameter, wenn Sie den Fokus als Ergebnis einer Tastaturinteraktion festlegen, z. B. durch eine Tabstoppsequenz oder einen Tastendruck. Wenn Sie z. B. ein ItemsControl-Element implementieren und tastendrücken, damit der Benutzer den Fokus zwischen Elementen im Steuerelement verschieben kann, verwenden Sie den Tastaturfokuszustand , wenn Sie den Fokus im Tastendruckhandler aufrufen.

Hinweise zu früheren Versionen

Hinweis

Wenn FocusState in Windows 8 programmgesteuert ist, wird das Tastaturfokusvisual auch dann angezeigt, wenn die vorherige Eingabemethode ein Zeiger war. Wenn Sie in Windows 8.1 den Fokus (FocusState.Programmatic) aufrufen, wird der vorherige FocusState,entwederZeiger oder Tastatur, beibehalten, sodass das richtige Fokusvisual angezeigt wird. Wenn Sie den Wert der FocusState-Eigenschaft überprüfen, nachdem Sie Focus (FocusState.Programmatic) aufgerufen haben, weist die FocusState-Eigenschaft den Wert Zeiger oder Tastatur auf.

In einer App, die für Windows 8 kompiliert, aber in Windows 8.1 ausgeführt wird, bleibt das Windows 8 Verhalten erhalten. Der Wert der FocusState-Eigenschaft ist Programmatic , und das Visuelle für den Tastaturfokus wird angezeigt.

Gilt für:

Weitere Informationen