Pregunta: | 40133 - PROPIEDAD FORECOLOR DE UN LISTBOX |
Autor: | Gonzalo Suárez-Llanos Flórez |
¿Cómo puede acceder a la propiedad ForeColor de un elemento de un ListBox en C#? La idea es tener un ListBox con ListItem de color diferentes, ya que el siguiente ejemplo pone a todos los elementos del mismo color, sin poder diferenciar por cada elemento.
ListBox1.ForeColor = Color.FromName("#FF0000") Gracias... |
Respuesta: | Hector Urbina |
TextBox1.ForeColor = System.Drawing.Color.Blue
TextBox1.ForeColor = System.Drawing.Color.FromName("Blue") Mas claro que el Agua |
Respuesta: | Yamil Bracho |
Gonzalo, el problema es que no hay ninguna propiedad que directamente te permita cambiar el color de cada item de un Listbox.
Para ello debes usar una tecnica que se llama "ownerdraw" Para ello debes hacer lo siguiente : 1) Colocale a tu Listbox en la propiedad DrawMode a OwnerDrawVariable o lo puedes hacer por codigo en la funcion InitializeComponent con : lst.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; 2) En la funcion InitializaComponent, agrega un manejador de eventos que va a manejar el color de los items del Listbox lst.DrawItem += new DrawItemEventHandler(this.DrawItemHandler); Y ahora simplemente escribes el manejador de eventos private void DrawItemHandler(object sender, DrawItemEventArgs e) { e.DrawBackground(); e.DrawFocusRectangle(); e.Graphics.DrawString(data[e.Index], new Font(FontFamily.GenericSansSerif, 14, FontStyle.Bold), new SolidBrush(color[e.Index]), e.Bounds); } Espero esto te ayude y saludos |