aaah thanks!
just two linex!
dim c as new colorconverter
c.convertfromstring(hex)
look at what I had to write!
VB Code:
Public Shared Sub HexToRGB(ByVal hex As String, ByRef r As Integer, ByRef g As Integer, ByRef b As Integer)
If hex Is Nothing Then Throw New ArgumentNullException()
' Remove the "#" sign
If hex.StartsWith("#") Then
hex = hex.Substring(1)
End If
Dim chars() As Char = StringToChar(hex)
r = HexCharToDec(chars(0)) * 16
r += HexCharToDec(chars(1))
g = HexCharToDec(chars(2)) * 16
g += HexCharToDec(chars(3))
b = HexCharToDec(chars(4)) * 16
b += HexCharToDec(chars(5))
End Sub
Public Shared Function HexToColor(ByVal hex As String) As Color
Dim r, g, b As Integer
HexToRGB(hex, r, g, b)
Return Color.FromArgb(r, g, b)
End Function
' Gets a hex character and returns its decimal value
Private Shared Function HexCharToDec(ByVal hex As Char) As Integer
Dim dec As Integer
hex = Char.ToLower(hex)
Try
dec = CInt(hex.ToString)
Return dec
Catch ' Not a number
Select Case hex
Case "a"c
Return 10
Case "b"c
Return 11
Case "c"c
Return 12
Case "d"c
Return 13
Case "e"c
Return 14
Case "f"c
Return 15
Case Else
Throw New ArgumentException()
End Select
End Try
End Function
Public Shared Function StringToChar(ByVal s As String) As Char()
If s Is Nothing Then Return Nothing
Dim chars(s.Length - 1) As Char
Dim i As Integer
For i = 0 To s.Length - 1
chars(i) = CChar(s.Substring(i, 1))
Next
Return chars
End Function