Mostrar información en "Listbox" en diferentes colores.

05/02/2005 - 18:57 por dani25A | Informe spam
Hola, me gustaria mostrar la información dentro de un control ListBox pero en
diferentes colores: rojo, azul ... se puede hacer ??

Gracias !!
Dani.
 

Leer las respuestas

#1 SoftJaén
05/02/2005 - 20:33 | Informe spam
"dani25A" escribió:

me gustaria mostrar la información dentro de un control ListBox pero en
diferentes colores: rojo, azul ... se puede hacer ??




Hola, Dani:

Aquí tienes un ejemplo, sacado de la ayuda sobre el evento «DrawItem» del
control ListBox:

Private Sub listBox1_DrawItem(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.DrawItemEventArgs) _
Handles ListBox1.DrawItem

' Draw the background of the ListBox control for each item.
e.DrawBackground()

' Create a new Brush and initialize to a Black colored brush by default.
Dim myBrush As Brush

' Determine the color of the brush to draw each item
' based on the index of the item to draw.
Select Case (e.Index)
Case 0
myBrush = Brushes.Red
Case 1
myBrush = Brushes.Orange
Case 2
myBrush = Brushes.Purple
End Select

' Draw the current item text based on the current Font
' and the custom brush settings.
e.Graphics.DrawString(CStr(ListBox1.Items(e.Index)), e.Font, _
myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, _
e.Bounds.Width, e.Bounds.Height))

' If the ListBox has focus, draw a focus rectangle around
' the selected item.
e.DrawFocusRectangle()

End Sub

Te advierto que en el procedimiento, deberás de añadir tantos colores como
elementos tenga el control ListBox. Es decir, si el control tiene 20
elementos, deberás de añadir 20 colores en la instrucción «Select ... Case»,
porque de lo contrario obtendrás una excepción del tipo
«System.ArgumentNullException» en el módulo «System.Drawing.dll».

Asimismo, antes de añadir los elementos, deberás de indicar que el cuadro de
lista es un elemento dibujado por el propietario, mediante la siguiente
sentencia:

ListBox1.DrawMode = DrawMode.OwnerDrawFixed


Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares