Lister les couleurs web grace a la reflexion

Contenu du snippet

genere un panel avec toutes les couleurs et leur nom en se servant de la recuperation du type :

Private oT As Type = System.Drawing.Color.Beige.GetType

ici n'importe quelle couleur (beige) fait l'affaire

Source / Exemple :


-------------------------------------------------------------------------------------------
------------------------------------- couleur.aspx -------------------------------------
-------------------------------------------------------------------------------------------

<%@ Page Language="vb" Codebehind="couleurs. vb" Inherits="ymages.couleur"%>
<html>
<body>
<form id="frm" method="post" runat="server">
<asp:PlaceHolder id="pl_couleur" runat="server" />
</form>
</body>
</html>

-------------------------------------------------------------------------------------------
--------------------------------------- couleur.vb --------------------------------------
-------------------------------------------------------------------------------------------

Public Class couleur

Protected WithEvents pl_couleur As PlaceHolder

Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

Dim mcoul As New TableauCouleurs()
pl_couleur.Controls.Add(mcoul.DisplayCouleurs)

End Sub

End Class

Public Class TableauCouleurs

#Region " variables "

Private _Colonnes As Int32
Private _Font As String

Const nbCoul As Int32 = 141
Const LargCoulPercent As Int32 = 4

Private oT As Type = System.Drawing.Color.Beige.GetType
Private oProperties() As System.Reflection.PropertyInfo = oT.GetProperties
Private oP As System.Reflection.PropertyInfo

#End Region

#Region " constructeurs "

Sub New()

MyBase.new()
_Colonnes = 5
_Font = "courier new"

End Sub

#End Region

#Region " proprietes "

Public Property Font() As String
Get
Return _Font
End Get
Set(ByVal Value As String)
_Font = Value
End Set
End Property

Public Property Colonnes() As Int32
Get
Return _Colonnes
End Get
Set(ByVal Value As Int32)
_Colonnes = Value
End Set
End Property

#End Region

#Region " methodes "

Public Function DisplayCouleurs() As Panel

Dim pn As New Panel()

pn.Width = Unit.Percentage(100)
pn.Height = Unit.Percentage(100)

Dim nbParCol As Int32 = CType((nbCoul / Colonnes), Int32)

Dim TexteLarge As Int32 = (CType((100 / Colonnes), Int32)) - LargCoulPercent
Dim TexteHaut As Int32 = (CType((100 / nbParCol), Int32)) - 1

For Each oP In oProperties

If oP.CanRead Then
Try
Dim lblC As New Label()
Dim lblT As New Label()

With lblT
.Text = oP.Name
.Width = Unit.Percentage(TexteLarge)
.Height = Unit.Percentage(TexteHaut)
With .Style
.Add("text-align", "right")
.Add("padding-right", "8px")
.Add("margin-bottom", "1px")
.Add("font-size", "8pt")
.Add("font-family", Font)
End With
End With

With lblC
.Text = ""
.Width = Unit.Percentage(LargCoulPercent)
.Height = Unit.Percentage(TexteHaut)
.BackColor = CType(oP.GetValue(oT, Nothing), Color)
.ToolTip = (CType(oP.GetValue(oT, Nothing), Color)).ToString + " / " + CType(oP.GetValue(oT, Nothing), Color).ToArgb.ToString
With .Style
.Add("margin-bottom", "1px")
.Add("border", "1px solid black")
End With
End With

pn.Controls.Add(lblT)
pn.Controls.Add(lblC)

Catch ex As Exception
End Try
End If
Next

Return pn

End Function

#End Region

End Class

-------------------------------------------------------------------------------------------

Conclusion :


pour un editeur autre que visual studio remplacer Codebehind par src

-------------------------------------------------------------------------------------------
erb

ebwm@ymages.com

http://ymages.com
http://isocele.net

-------------------------------------------------------------------------------------------

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.