流阅读器如何在其中获取颜色

本文关键字:在其中 获取 颜色 | 更新日期: 2023-09-27 18:30:36

如何在此代码中将teile[4]转换为Color

       public void Save(StreamWriter sw)
    {
        for (int i = 0; i < liste.Count; i++)
        {
            Buch b = (Buch)liste[i];
            if (i == 0)
                sw.WriteLine("ISDN ; Autor ; Titel ; Farbe");
            sw.WriteLine(b.ISDN + ";" + b.Autor + ";" + b.Titel + ";" + b.Farbe);
        }
    }
    public void Load(StreamReader sr)
    {
        int isdnn;
        string autorr;
        string titell;
        Color col;
        sr.ReadLine();
        string line;
        while((line = sr.ReadLine()) != null)
        {
            if (line.Length > 0)
            {
                string[] teile = line.Split(';');
                try
                {
                    isdnn = Convert.ToInt32(teile[0]);
                    autorr = teile[1];
                    titell = teile[2];
                    string color = teile[3];
                    col = Color.FromName(color);
                }
                catch
                {
                    throw new Exception("Nicht geklappt");
                }
                Buch buch = new Buch(isdnn, autorr, titell, col);
                liste.Add(buch);
            }
        }
    }

如果我加载一些东西,它总是白色的

流阅读器如何在其中获取颜色

您可以使用

Color.FromName .

string color = teile[4];
Color col = Color.FromName(color);

您可以使用此问题中的一些答案: XmlSerializer 和 System.Drawing.Color 的最佳解决方案

他们使用的是 XmlSerializer,但想法是相同的 将System.Drawing.Color转换为System.String和从转换。

在这种情况下我会怎么做:

//Change your line to this
sw.WriteLine(b.ISDN + ";" + b.Autor + ";" + b.Titel + ";" + System.Drawing.ColorTranslator.ToHtml(b.Farbe));
//And change this line
col = System.Drawing.ColorTranslator.FromHtml(color);