由 C# colorpicker 和 loading 组成

c# colorpicker and loading

我有一个颜色选择器可以将用户选择保存为文本文件,然后在程序启动时加载颜色。问题是我正在使用 .toknowncolor();这很好,但是颜色选择器样本中有一些它不喜欢的颜色 - 所以说 black/white/yellow/red/blue/etc 会很好 - 基本颜色,但是当它开始进入不同的颜色深浅时,它不喜欢它。我假设这是因为它不是已知颜色。我已经尝试了其他 2 个选项 (toargb() + tostring()),但我无法让它们工作。这是我的资料;

//In my linklabel
private void TextCol_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            ColorDialog TextColour = new ColorDialog();
            TextColour.AllowFullOpen = false;
            TextColour.ShowHelp = true;
            if (TextColour.ShowDialog() == DialogResult.OK)
            {
                #region Labels
                label1.ForeColor = TextColour.Color;
              if (Customise == true)
                {
                    File.WriteAllText("C:/BMW/Colours/TextCol.txt", TextColour.Color.ToKnownColor() + "");
                }
            }
        }

//At the top
public Form1()
    {
        InitializeComponent();
        InvoiceSavePath.Text = File.ReadAllText("C:/BMW/Invoice Save Path.txt");
        string[] TextCol = File.ReadAllLines("C:/BMW/Colours/TextCol.txt");
        label1.ForeColor = Color.FromName(TextCol[0]);
    }

因此用户使用链接标签更改颜色,将其写入 txt 文件,然后在下次启动时再次加载。与基本颜色完美搭配,但与其他颜色搭配效果不佳 - 我怎样才能让它与所有色板颜色一起工作 - 我不想使用自定义颜色选项......标准色板可以:)

谢谢

你应该使用 ARGB 函数。

要写:

File.WriteAllText("C:/BMW/Colours/TextCol.txt", TextColour.Color.ToArgb().ToString());

读取/解析:

label1.ForeColor = Color.FromArgb(Int.Parse(TextCol[0]));