2012-11-04 22 views
12

Używam formularzy okien C# i mam richtextbox i chcę kolorować jakiś tekst na czerwono, niektóre na zielono, a niektóre na czarno.Jak korzystać z wielu kolorów w richtextbox

Jak to zrobić? Dołączony obraz.

enter image description here

+0

Niektóre kodu, który pokazuje to, czego już nie byłoby pomocne. –

+0

@PaulHiemstra Rzeczywiście jestem programistą C++, C, Java, Assembly i innymi językami, nigdy wcześniej nie używałem C#. Biorę kurs w kolażu o C#. Dopóki nie wejdę do biznesu, może potrzebuję twojej pomocy. Dziękuję za wysłuchanie. – Billie

+0

Mam nadzieję, że tu rozwiązanie, którego szukasz http://stackoverflow.com/a/27149285/998483 – Boobalan

Odpowiedz

28

System.Windows.Forms.RichTextBox ma właściwość typu Color nazwy SelectionColor która pobiera lub ustawia kolor tekstu bieżącej selekcji lub wstawiania punktu. Możesz użyć tej właściwości, aby oznaczyć konkretne pola w swoim RichTextBox z podanymi kolorami.

Przykład

RichTextBox _RichTextBox = new RichTextBox(); //Initialize a new RichTextBox of name _RichTextBox 
_RichTextBox.Select(0, 8); //Select text within 0 and 8 
_RichTextBox.SelectionColor = Color.Red; //Set the selected text color to Red 
_RichTextBox.Select(8, 16); //Select text within 8 and 16 
_RichTextBox.SelectionColor = Color.Green; //Set the selected text color to Green 
_RichTextBox.Select(0,0); //Select text within 0 and 0 

Zauważ, że: Można uniknąć obliczeń używając RichTextBox.Find(string str), które mogą być dodawane przez Object Browser jeśli chcesz, aby podświetlić tekst w Lines w RichTextBox podając jego wartość

Przykład

RichTextBox _RichTextBox = new RichTextBox(); //Initialize a new RichTextBox of name _RichTextBox 
_RichTextBox.Find("Account 12345, deposit 100$, balance 200$"); //Find the text provided 
_RichTextBox.SelectionColor = Color.Green; //Set the selected text color to Green 

Dzięki,
Mam nadzieję, że to pomocny :)

+0

Dziękuję bardzo – Billie

+0

@ user1798362 żadnych problemów. Cieszę się że mogłem pomóc. Miłego dnia :) –

+0

To jest działające rozwiązanie, ale istnieje łatwiejszy sposób postępowania: http://stackoverflow.com/a/10587765/1529139 – 56ka

12

Znalazłem metodę rozszerzenia, które daje możliwość zmiany koloru sznurka, a także wstawienie wartości nowej linii:

public static void AppendText(this RichTextBox box, string text, Color color, bool AddNewLine = false) 
    { 
     if (AddNewLine) 
     { 
      text += Environment.NewLine; 
     } 

     box.SelectionStart = box.TextLength; 
     box.SelectionLength = 0; 

     box.SelectionColor = color; 
     box.AppendText(text); 
     box.SelectionColor = box.ForeColor; 
    } 
+0

Myślę, że możesz również dodać 'box.SuspendLayout()' na początek metody i 'box.ResumeLayout()' na końcu. – tedebus

Powiązane problemy