2010-01-22 13 views

Odpowiedz

51

po prostu wstawić tekst na karetki pozycji:

textBox.Text = textBox.Text.Insert(textBox.CaretIndex, "<new text>"); 

Aby zastąpić zaznaczony tekst z nowym tekstem:

textBox.SelectedText = "<new text>"; 

aby przewinąć pole tekstowe do pozycji karetki:

int lineIndex = textBox.GetLineIndexFromCharacterIndex(textBox.CaretIndex); 
textBox.ScrollToLine(lineIndex); 
0

Użyj TextBox.CaretIndex, aby zmodyfikować tekst związany z właściwością TextBox.Text.

+0

nie istnieje coś bardziej proste? A co, jeśli tekst jest już wybrany? Jak można go zastąpić nowym tekstem? I jak mogę sprawić, żeby karetka przewinęła się do widoku? – Roice

+0

W rzeczywistości jest to bardzo prosty sposób. – Thorsten79

+0

Ale nie brałeś pod uwagę moich innych potrzeb: Jak można go zastąpić nowym tekstem? I jak mogę sprawić, żeby karetka przewinęła się do widoku? – Roice

7

Sam znalazłem jeszcze prostsze rozwiązanie:

textBox.SelectedText = "New Text"; 
textBox.SelectionLength = 0; 

Następnie przewiń do pozycji określonej przez Tarsiera.

+0

TextBox nie ma właściwości SelectedIndex. Zakładam, że chodziło Ci o SelectedText i, tak, masz rację, to jest prostsze. – Tarsier

+0

Tak, miałem na myśli SelectedText. Zmieniłem go w powyższej odpowiedzi. – Roice

9

Jeśli chcesz przesuwać kursor po wstawionego tekstu Poniższy kod jest przydatna

textBox.SelectedText = "New Text"; 
textBox.CaretIndex += textBox.SelectedText.Length; 
textBox.SelectionLength = 0; 
Powiązane problemy