2015-07-21 57 views
0

我有一个colorpicker将用户选择保存为文本文件,然后在程序启动时加载颜色。问题是我正在使用.toknowncolor();这很好,但colorpicker swatch中有一些它不喜欢的颜色 - 所以它可以用黑色/白色/黄色/红色/蓝色等等 - 基本颜色,但是当它开始进入不同的颜色时一种颜色的阴影,它不喜欢它。我假设这是因为它不是已知的颜色。我试过其他2个选项(toargb()+ tostring()),但我无法让它们工作。这是我的;c#colorpicker and loading

//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文件,然后在下次启动时再次加载它。与基本颜色完美的作品,但不与他人 - 我怎么可以把它与所有的样本颜色的工作 - 我不想使用自定义颜色选项...标准色样都行:)

感谢

回答

1

您应该使用ARGB功能。

这样写:

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

读取/解析:

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

辉煌。有效。非常感谢 – Sean