Control.Focus(FocusState) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Tenta di impostare lo stato attivo sul controllo.
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
Parametri
- value
- FocusState
Specifica la modalità di impostazione dello stato attivo, come valore dell'enumerazione .
Restituisce
bool
true se lo stato attivo è stato impostato sul controllo o lo stato attivo era già sul controllo. false se il controllo non è attivabile.
Esempio
In questo esempio, facendo clic su un pulsante "Modifica" lo stato attivo viene impostato su un controllo TextBox, quindi lo stato attivo a livello di codice viene passato al metodo 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);
}
Commenti
Se si chiama questo metodo su un Control
oggetto con isTabStop impostato su false
, la chiamata verrà ignorata e lo stato attivo non verrà spostato e la chiamata restituirà false
.
Non è possibile rimuovere lo stato attivo da un controllo chiamando questo metodo con Unfocused come parametro . Questo valore non è consentito e causa un'eccezione. Per rimuovere lo stato attivo da un controllo, impostare lo stato attivo su un controllo diverso.
In genere si passa FocusState.Programmatic come parametro per indicare che il controllo ha ottenuto lo stato attivo tramite una chiamata intenzionale al metodo Focus. Ad esempio, se facendo clic su un pulsante "Modifica" lo stato attivo viene impostato su un controllo TextBox, usare lo stato attivo a livello di codice.
Passare FocusState.Pointer se si imposta lo stato attivo come risultato diretto di un'interazione del puntatore. Passare FocusState.Keyboard come parametro se si imposta lo stato attivo in seguito a un'interazione tramite tastiera, ad esempio una sequenza di tabulazioni o una pressione del tasto. Ad esempio, se si implementa un controllo ItemsControl e si gestiscono i tasti per consentire all'utente di spostare lo stato attivo tra gli elementi nel controllo, usare lo stato attivo della tastiera quando si chiama Stato attivo nel gestore di pressione del tasto.
Note per le versioni precedenti
Nota
In Windows 8, quando FocusState è a livello di codice, l'oggetto visivo stato attivo della tastiera viene visualizzato anche se il metodo di input precedente era puntatore. In Windows 8.1, quando chiami Stato attivo (FocusState.Programmatic), lo stato attivo precedente, puntatore otastiera, viene mantenuto in modo che venga visualizzato l'oggetto visivo dello stato attivo corretto. Ciò significa che se si controlla il valore della proprietà FocusState dopo aver chiamato Focus (FocusState.Programmatic), la proprietà FocusState avrà un valore puntatore otastiera.
In un'app compilata per Windows 8, ma eseguita in Windows 8.1, il comportamento di Windows 8 viene mantenuto. Il valore della proprietà FocusState è Programmatic e viene visualizzato l'oggetto visivo stato attivo della tastiera.