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.
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.
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 :)
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;
}
Myślę, że możesz również dodać 'box.SuspendLayout()' na początek metody i 'box.ResumeLayout()' na końcu. – tedebus
można użyć obiektu Run zmienić kolor przy starcie
private Run GetForegroundColor(string strInformation, Brush color)
{
Run noramlRun = new Run(strInformation);
noramlRun.Foreground = color;
return noramlRun;
}
dla bardziej złożonego scenariusza jak zmienić kolor na podstawie wymogu następnie odwiedzić link cios
Niektóre kodu, który pokazuje to, czego już nie byłoby pomocne. –
@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
Mam nadzieję, że tu rozwiązanie, którego szukasz http://stackoverflow.com/a/27149285/998483 – Boobalan