2015-07-21 41 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