我有一个颜色选择器将用户选择保存为文本文件,然后在程序启动时加载颜色。问题是我正在使用.toknowncolor();这很好,但是颜色选择样品中有一些它不喜欢的颜色 - 所以它会很好用黑色/白色/黄色/红色/蓝色/等 - 基本颜色,但是当它开始运行时对于不同色调的颜色,它并不喜欢它。我假设这是因为它不是一个已知的颜色。我已经尝试了其他两个选项(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]);
}
因此,用户使用linklabel更改颜色,将其写入txt文件,然后在下次启动时再次加载。与基本颜色完美配合,但不与其他颜色配合使用 - 如何使其与所有色板颜色一起使用 - 我不想使用自定义颜色选项...标准样品将执行:)
由于
答案 0 :(得分:1)
您应该使用ARGB功能。
写:
File.WriteAllText("C:/BMW/Colours/TextCol.txt", TextColour.Color.ToArgb().ToString());
阅读/解析:
label1.ForeColor = Color.FromArgb(Int.Parse(TextCol[0]));