Consultoría Informática: Programas a medida, Páginas web, Tiendas Online, Posicionamiento en Internet (SEO), Accesibilidad, Usabilidad...

Colorear los elementos de un combo

WebProgramacion > Programacion > C# > Colorear los elementos de un combo

C#

Con este código vamos a poder colorear el fondo de los elementos de un objeto de la clase ComboBox.

Supongamos un objeto llamado cmbEjemplo, de la clase ComboBox, con 3 ítems, y cada uno tendrá un color diferente. En el ejemplo se va a mantener el texto de cada uno de los ítems.

Tenemos que programar el evento DrawItem del objeto cmbEjemplo de la siguiente manera:

private void cmbEjemplo_DrawItem(object sender, DrawItemEventArgs e)
{
   switch (e.Index)
   {
      case 0:
         e.Graphics.FillRectangle(Brushes.Red, e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
         e.Graphics.DrawString(cmbEjemplo.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds);
         break;
      case 1:
         e.Graphics.FillRectangle(Brushes.Green, e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
         e.Graphics.DrawString(cmbEjemplo.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds);
         break;
      case 2:
         e.Graphics.FillRectangle(Brushes.Blue, e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
         e.Graphics.DrawString(cmbEjemplo.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds);
         break;
   }
}

Nota: Debemos fijar la propiedad DrawMode del combo al valor OwnerDrawVariable.

Autor del artículo

Dámaso Velázquez

Artículos relacionados

Compartir

  • Programas a medida
  • Accesibilidad
  • Presencia en Internet
  • Tiendas online