This sample actually shows several things, like how to add controls to a page/Placeholder, dynamically, how to get a color from RGB, convert a color to Hex, plus (the main point) it shows how, using reflection, you can iterate through the system colors and display them (using dynamic labels), plus get the HTML hex for each color.
<%@ Import Namespace="System.Reflection" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<script language="VB" Runat="server">
Sub Page_Load(Source as Object, E as EventArgs)
Dim t As Type = GetType(Color)
For Each fi As PropertyInfo In t.GetProperties
If (fi.PropertyType.ToString = "System.Drawing.Color") Then
Dim colorName As String = fi.Name
Dim lbl As Label = New Label
Dim lit As LiteralControl = New LiteralControl
Dim c As Color = System.Drawing.Color.FromName(colorName)
lit.Text = (" " + colorName + " (" & GetHexColor(c) & ")")
lbl.BackColor = c
lbl.Width = Unit.Pixel(125)
lbl.Height = Unit.Pixel(20)
lbl.BorderColor=Color.FromArgb(&H78E0E0E0)
lbl.BorderWidth = Unit.Pixel(1)
phl.Controls.Add(lbl)
phl.Controls.Add(New LiteralControl(" "))
phl.Controls.Add(lit)
phl.Controls.Add(New LiteralControl("<br />"))
End If
Next
End Sub
Function GetHexColor(colorObj as Color) as String
return "#" & CheckZero(Hex(colorObj.R)) & CheckZero(Hex(colorObj.G)) & CheckZero(Hex(colorObj.B))
End function
Function CheckZero(sNum as String) as String
if sNum="0" then
return "00"
else
return sNum
End If
End Function
</script>
<html>
<head>
<meta name="GENERATOR" Content="ASP Express 5.0">
<title>System Colors Using Reflection</title>
</head>
<body>
<form id="form1" Runat="server">
<asp:PlaceHolder ID="phl" runat="server"></asp:PlaceHolder>
</form>
</body>
</html>