02/2010
22

Mostrar imagen en un ComboBox

Publicado por: Eder Oscar Lázaro Rodriguez (edoswit) 
Calificación 2.00 por 1 personas
Votar ahora!

Es muy fácil añadir imágenes en un ComboBox .NET proporciona una manera fácil de agregar la imagen. Veamos un ejemplo.

Lo primero es cargar los Items del comboBox:

private void LoadItems() {

    myComboBox.DrawMode = DrawMode.OwnerDrawVariable;

    myComboBox.Items.Clear();

    string[] priorities = { "High", "Medium", "Low" };

    foreach (string priority in priorities)  {

          myComboBox.Items.Add(priority);

    }

}

 Luego usamos el evento DrawItem para dibujar e insertar las imagenes para cada Item:

private void myComboBox_DrawItem(object sender, DrawItemEventArgs e)  {

     if (e.Index >= 0)  {

          ComboBox cmb = sender as ComboBox;

          string text = cmb.Items[e.Index].ToString();

          e.DrawBackground();

          Image img = GetImage(text);

          if (img != null) {

               e.Graphics.DrawImage(img, e.Bounds.X, e.Bounds.Y, 15, 15);

          }

          e.Graphics.DrawString(text, cmb.Font, Brushes.Black, new RectangleF(e.Bounds.X + 15, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height));

          e.DrawFocusRectangle();

     }

}

Por ultimo el metodo GetImage(text) que nos devuelve una imagen usada en el proyecto como recurso:

private Image GetImage(string text)  {

      switch (text)  {

            case "High":

                 return Properties.Resources.High;

            case "Low":

                 return Properties.Resources.Low;

            case "Medium":

                 return Properties.Resources.Medium;

      }

      return null;

}

y el resultado que obtendremos sera algo como la siguiente imagen, espero que les sea de ayuda, Saludos.


 

(0) Comentarios

Dejame tu Comentario

Escribe tu Comentario:





arriba