2015-11-24 82 views
1

我使用colordialog讓用戶選擇一種顏色,然後將其保存到數據庫中。當加載顏色來填充標籤時,它會以字符串形式出現。 如何轉換:將字符串轉換爲顏色VB.NET

Color `[A=255, R=128, G=128, B=255]` to color 

有沒有辦法保存用戶選擇的值

如果我使用這些選項,阿爾法值將會丟失

Dim c As Color 
c = Color.FromName("red") 
c = Color.FromArgb(255, 0, 0) 
c = Color.FromKnownColor(KnownColor.Red) 
+1

顏色。 FromArgb()有一個超載,期望4個值,其中第一個是alpha通道值 – BlueStrat

+3

是否需要將數據存儲爲文本?如果要將其存儲爲32位整數,則可以簡單地使用「Color.ToArgb」和「Color.FromArgb」。 – jmcilhinney

+1

你是否創建了該字符串?它幾乎看起來像一個序列化器可能提供的格式 – Plutonix

回答

1

正如評論說,你可以存儲32-bit ARGB value。它基本上是一個數值。如果你用這種方式編碼,那麼就不需要編寫一個函數來提取顏色值。

'your string selected from a color dialog 
Dim clrDialog As New ColorDialog 
If clrDialog.ShowDialog = Windows.Forms.DialogResult.OK Then 
     TextBox1.Text = clrDialog.Color.ToArgb.ToString 
End If 
clrDialog.Dispose() 

' to get back ARGB value from string 
TextBox1.BackColor = Color.FromArgb(CInt(TextBox1.Text))