/ / Zmiana koloru według wielkości liter - c #, kolory, richtextbox

Zmiana koloru według wielkości - c #, kolory, richtextbox

Próbuję wyświetlić dane z edytora tekstuw data.txt w polu RichTextBox zgodnie z określonym formularzem. Mój plik data.txt składa się z 4 kolumn. Zgodnie z danymi w pierwszej kolumnie dane w kolumnach 2 i 3 będą kolorować. Na przykład zgodnie z danymi „kmy” w kolumnie 1; Dane w kolumnie 2 to „k”, dane w kolumnie 2 są czerwone, dane w kolumnie 3 to „m”, dane w kolumnie 3 są niebieskie, a dane w kolumnie 4 to „y”, więc próbuję aby wyświetlić dane w kolumnie 4 na zielono jako pole tekstowe.

Oto moje kody;

public static class RichTextBoxExtensions
{
public static void AppendText(this RichTextBox box, string text, Color color)
{
box.SelectionColor = color;
box.AppendText(text);
}

}

public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)
{
int count = 0;
List<string> lines = File.ReadAllLines("data.txt").ToList();
foreach (string current in lines)
{
string[] dataArray = current.Split(" ");
string color1;
string color2;
string color3;

Color color11;
Color color22;
Color color33;

if (count % 2 == 0) {
richTextBox1.SelectionFont = new Font(richTextBox1.Font, FontStyle.Bold);
}
count++;

color1 = dataArray[0].Substring(0, 1);
color2 = dataArray[0].Substring(1, 1);
color3 = dataArray[0].Substring(2, 1);

if (color1 == "k")
{
color11 = Color.Red;
}
else if (color1 == "m")
{
color11 = Color.Blue;
}
else if (color1 == "y")
{
color11 = Color.Green;
}

if (color2 == "k")
{
color22 = Color.Red;
}
else if (color2 == "m")
{
color22 = Color.Blue;
}
else if (color2 == "y")
{
color22 = Color.Green;
}

if (color3 == "k")
{
color33 = Color.Red;
}
else if (color3 == "m")
{
color33 = Color.Blue;
}
else if (color3 == "y")
{
color33 = Color.Green;
}

richTextBox1.AppendText(dataArray[1] + " ", Color.Red);
richTextBox1.AppendText(dataArray[2] + " ", Color.Blue);
richTextBox1.AppendText(dataArray[3] + " ", Color.Green);
richTextBox1.AppendText("n");
}
}
}

Mój problem polega na tym

richTextBox1.AppendText(dataArray[1] + " ", Color.Red);
richTextBox1.AppendText(dataArray[2] + " ", Color.Blue);
richTextBox1.AppendText(dataArray[3] + " ", Color.Green);

Moje dane.txt;

kmy USA Washington 212
ymy England London 123

k czerwony, m niebieski i zielony. USA czerwony niebieski Washington i 212 muszą być zielone

Jak mogę drukować kolory z trójnikiem Color11, Color22, Color33 w kolorze Color.Red, Color.Blue, Color.Green?

Mam problem z wyrażeniem tego z powodu mojego problemu językowego. Czekam na twoją pomoc.

Odpowiedzi:

0 dla odpowiedzi № 1

O ile wiem, próbujesz zrobić coś takiego?

 richTextBox1.AppendText(dataArray[1] + " " + "Red");
richTextBox1.AppendText(dataArray[2] + " " + "Blue");
richTextBox1.AppendText(dataArray[3] + " " + "Green");

Czy tego chcesz? lub chcesz kolory w RichTextBox ?? Jeśli chcesz mieć kolory w bogatym polu tekstowym, najłatwiejszym sposobem byłoby utworzenie 3 zdjęć z 3 różnymi kolorami, a następnie wklejenie zdjęć w tym polu:

 image img = Image.FromFile(FilePathHere);
Clipboard.SetImage(img);
richtextbox1.Paste();

czy chcesz zmienić kolor pierwszego planu tekstu w richtextbox?

 richtextbox1.ForeColor = color.Red

aby połączyć z kodem ur, po prostu wykonaj następujące czynności:

  richtextbox1.ForeColor = Color.Red
richTextBox1.AppendText(dataArray[1] + " ")
richtextbox1.ForeColor = Color.Blue
richTextBox1.AppendText(dataArray[2] + " ")
richtextbox1.ForeColor = Color.Green
richTextBox1.AppendText(dataArray[3] + " ")