Control.Focus(FocusState) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 false
festgelegt 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.