2014-11-05 9 views
5

Nel telefono Windows, come posso selezionare tutto il testo in Casella di testo quando il TextBox è attivo?Come selezionare tutto il testo nella casella di testo quando diventa attivo

provo impostando la proprietà get focus di Textbox:

private void TextBox_GotFocus(object sender, RoutedEventArgs e) 
    { 
     TextBox textBox = (TextBox)sender; 

     textBox .SelectAll(); 
    } 

Io vedo vedo tutto il testo viene selezionato per 1-2 secondi e poi ritorna alla modalità cursore (ossia 1 lampeggio linea).

+0

Stai selezionando quel testo per copiarlo o fare qualche tipo di operazione o vuoi solo evidenziare il testo? –

+0

Desidero selezionare il testo per copiarlo quando il TextBox è attivo. – hap497

+0

E voglio che tutto il testo sia selezionato in modo tale che quando l'utente preme un tasto, diciamo b, tutto il testo sarà sparito e sostituito con una "b". – hap497

risposta

0

Ho avuto lo stesso problema su WPF e sono riuscito a risolverlo. Non sono sicuro se è possibile utilizzare quello che ho usato, ma in sostanza, il codice sarà simile:

private void TextBox_GotFocus(object sender, RoutedEventArgs e) 
    { 
     TextBox textBox = (TextBox)sender; 

     textBox .CaptureMouse() 
    } 

    private void TextBox_GotMouseCapture(object sender, RoutedEventArgs e) 
    { 
     TextBox textBox = (TextBox)sender; 

     textBox.SelectAll(); 
    } 

private void TextBox_IsMouseCaptureWithinChanged(object sender, RoutedEventArgs e) 
    { 
     TextBox textBox = (TextBox)sender; 

     textBox.SelectAll(); 
    } 

Tutti gli eventi agganciati fino alla casella di testo originale. Se questo non funziona, potresti sostituire CaptureMouse con CaptureTouch (e utilizzare gli eventi appropriati). In bocca al lupo!

0

Si può provare questo codice,

private void TextBox_GotFocus(object sender, RoutedEventArgs e) 
    { 
     String sSelectedText = mytextbox.SelectedText; 
    } 

Se l'utente fa clic su un'icona copia che viene dopo la selezione sarà ottenere copiato, se si vuole fare a livello di codice si può provare questo

DataPackage d = new DataPackage(); 
d.SetText(selectedText); 
Clipboard.SetContent(d); 

Suggerirei di eseguire la copia in un altro evento piuttosto che in getfocus, in quanto verrà attivato immediatamente dopo che l'utente ha toccato il campo di testo, quindi questo metodo verrà chiamato quando non è inserito alcun testo.

+0

Grazie. cosa succede se voglio solo tutto il testo da selezionare? (tutto il testo con il colore selezionato come sfondo) Quando l'utente fa clic di nuovo su di esso, torna alla modalità cursore (vale a dire solo un "|")? – hap497