2014-11-05 14 views
5

Wie kann ich in Windows Phone den gesamten Text in Textbox auswählen, wenn die TextBox den Fokus hat?So wählen Sie den gesamten Text in einem Textfeld aus, wenn er den Fokus erhält

Ich versuche, die Einstellung der get Fokus Eigenschaft Textbox:

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

     textBox .SelectAll(); 
    } 

Was ich sehe, ist sehe ich den ganzen Text für 1-2 sec ausgewählt wird, und dann geht es zurück zur Cursor-Modus (dh 1 x Blinken Linie).

+0

Sie wählen diesen Text aus, um ihn zu kopieren oder eine Operation auszuführen oder Sie möchten nur den Text hervorheben? –

+0

Ich möchte den Text zum Kopieren auswählen, wenn die TextBox den Fokus hat. – hap497

+0

Und ich möchte den ganzen Text ausgewählt werden, so dass, wenn Benutzer eine Taste drücken, sagen b, wird der gesamte Text weg sein und durch ein 'b' ersetzen. – hap497

Antwort

0

Ich hatte das gleiche Problem auf WPF und es geschafft, es zu lösen. Nicht sicher, ob Sie verwenden können, was ich verwendete, aber im Wesentlichen würde Ihr Code wie aussehen:

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

Alle Ereignisse angeschlossen an die ursprüngliche Textbox. Wenn dies für Sie nicht funktioniert, können Sie CaptureMouse möglicherweise durch CaptureTouch ersetzen (und die entsprechenden Ereignisse verwenden). Viel Glück!

0

Sie diesen Code versuchen können,

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

Wenn Benutzer klickt auf Kopie-Symbol, das nach der Auswahl kommt, wird es kopiert werden, wenn Sie es tun wollen programmatisch können Sie diese versuchen

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

Ich würde vorschlagen, das Kopieren in einem anderen Ereignis statt in gotfocus durchzuführen, da dies sofort nach dem Tippen auf das Textfeld ausgelöst wird, so dass diese Methode aufgerufen wird, wenn tatsächlich kein Text eingegeben wurde.

+0

Danke. Was, wenn ich nur den gesamten Text auswählen möchte? (d. h. der gesamte Text mit der ausgewählten Farbe als Hintergrund) Wenn der Benutzer erneut darauf klickt, kehrt er in den Cursormodus zurück (d. h. nur ein "|")? – hap497

Verwandte Themen