Mostrar imagen en un ComboBox
Publicado por: Eder Oscar Lázaro Rodriguez (edoswit)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.
![]() |
![]() |
![]() |










