2015-11-24 84 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))