2009-06-26 9 views
6

Mam richTextBox winforms zawierający wiele linii tekstu (np. Pliki tekstowe 2 MB) i chciałbym programowo zmienić formatowanie określonych linii, np. Podświetlając je.Jak zmienić format określonych linii w RichTextBox

Jak mogę adresować linie, a nie znaki? Czy RichTextBox jest nawet najlepszą kontrolą tego typu rzeczy, czy może jest inna alternatywa? Próbowałem Infragistics UltraFormattedTextEditor, ale to było co najmniej kilka rzędów wielkości wolniej wyświetlać tekst, więc nie jest to dobre dla moich dłuższych plików.

Dzięki!

Odpowiedz

8

Aby uzyskać dostęp do linii na kontroli pola tekstowego za pomocą właściwości liniach

richTextBox.Lines

Stamtąd można iterację linie i pracować z tymi, które chcesz zmienić.

Edytuj: Zgadzam się, przegapiłem część podświetlenia (+1 za udzielenie odpowiedzi na własne pytanie). W tym kod roboczych:

int lineCounter = 0; 
foreach(string line in richTextBox1.Lines) 
{ 
    //add conditional statement if not selecting all the lines 
    richTextBox.Select(richTextBox.GetFirstCharIndexFromLine(lineCounter), line.Length); 
    richTextBox.SelectionColor = Color.Red; 
    lineCounter++; 
} 
+0

Który dostaje mnie linie; ale jak mogę powiedzieć, RichtTextBox, aby podświetlić linie, które chcę, na przykład? Mogę ustawić SelectedText tylko według numeru znaku, a nie po linii ...? –

1

OK, będę dokumentować rozwiązanie znalazłem: przy użyciu richTextBox.Lines aby uzyskać linie jak mówi Luis, następnie

richTextBox.GetFirstCharIndexFromLine(int line) 
richTextBox.Select(int start, int length) 

aby wybrać odpowiednie linie, następnie

richTextBox.SelectionColor... 
richTextBox.SelectionBackground... 

itp., Aby sformatować linie.

Powiązane problemy