首页 文章

按案例换色

提问于
浏览
0

我试图根据特定的表单列出RichTextBox框中data.txt中文本编辑器的数据 . 我的data.txt文件由4列组成 . 根据第一列中的数据,第2列和第3列中的数据将着色 . 例如,根据第1列中的“kmy”数据;第2列中的数据为“k”,第2列中的数据为红色,第3列中的数据为“m”,第3列中的数据为蓝色,第4列中的数据为“y”,因此我尝试将第4列中的数据以绿色列为richtextbox .

这是我的代码;

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");
        }
    }
}

我的问题是

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

我的data.txt;

kmy USA Washington 212
ymy England London 123

k red,m blue y green . 美国红华盛顿蓝和212必须是绿色

如何在Color.Red,Color.Blue,Color.Green部件中打印color11,color22,color33 T恤的颜色?

由于我的语言问题,我很难表达它 . 我在等你的帮忙 .

1 回答

  • 0

    据我所知,你试图做这样的事情吗?

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

    这是你想要的吗?或者你想要_2936417中的颜色?如果您想要富文本框中的颜色,最简单的方法是创建3种不同颜色的图片,然后将图片粘贴到richtextbox中:

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

    或者你想改变richtextbox文本的前景色?

    richtextbox1.ForeColor = color.Red
    

    要与你的代码结合,只需这样做:

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

相关问题