Visual Basic.NET - Dar color a texto del 1er elemento Combo

   
Vista:

Dar color a texto del 1er elemento Combo

Publicado por Alberto (9 intervenciones) el 11/11/2009 15:10:33
Saludos.
He estado investigando en internet y despues de estar muchisimo tiempo en ello no he conseguido dar con una forma facil de hacer lo que necesito, os explico:

Necesito que el texto del primer elemento de un ComboBox sea de color "LightGrey" (para de algun modo indicar al usuario que ese elemento no forma parte de una elección válida. EJ:

Item(0) <Usuario>
Item(1) Pedro
Item(2) Pepe
Item(3) Juan
Item(4) Marta
Item(5) Laura

En este caso el Item(0), es decir, "<Usuario>" debe tener el texto en Color "LightGrey".
Si alguien sabe alguna forma sencilla de hacer esto, se lo agradecería.

Un saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dar color a texto del 1er elemento Combo

Publicado por gon (31 intervenciones) el 12/11/2009 13:25:30
Hola amigo, te paso el ejemplo que necesitas. tenes que establecer la propiedad DrawMode del combo en la opcion OwnerDrawVariable. Cualquier cosa avisa

saludos

llenas el combo en el load del form o donde quieras
ComboBox1.Items.Add("Juan")
ComboBox1.Items.Add("Pedro")
ComboBox1.Items.Add("Martin")
ComboBox1.Items.Add("Marisa")
ComboBox1.Items.Add("Florencia")


Private Sub ComboBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem
'Coloreamo el texto
If e.Index = 0 Then
e.Graphics.DrawString(ComboBox1.Items(e.Index).ToString(), e.Font, New SolidBrush(Color.LightGray), e.Bounds)
Else
e.Graphics.DrawString(ComboBox1.Items(e.Index).ToString(), e.Font, New SolidBrush(Color.Black), e.Bounds)
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar