Para un proyecto actual, necesitaba un menú desplegable con nombres de colores (cadenas) con un pequeño cuadrado de ejemplo del color al lado (imagen). Entonces, pude diseñar un ComboBox personalizado para lograr esto. Sin embargo, tengo un problema ... cuando selecciono un elemento de la lista, el ejemplo de color no aparece, solo el nombre del color. (Ver ejemplos a continuación)Dibujando imágenes dentro de un ComboBox personalizado
Menú Ampliado:
Después del tema que se elija:
Para dibujar los colores junto a las cuerdas para empezar, usado:
// Draws the items into the ColorSelector object
protected override void OnDrawItem(DrawItemEventArgs e)
{
e.DrawBackground();
e.DrawFocusRectangle();
DropDownItem item = (DropDownItem)Items[e.Index];
// Draw the colored 16 x 16 square
e.Graphics.DrawImage(item.Image, e.Bounds.Left, e.Bounds.Top);
// Draw the value (in this case, the color name)
e.Graphics.DrawString(item.Value, e.Font, new
SolidBrush(e.ForeColor), e.Bounds.Left + item.Image.Width, e.Bounds.Top + 2);
base.OnDrawItem(e);
}
Donde un DropDownItem contenía la imagen y la cadena que se dibujaría. Entonces ... ¿alguien sabe lo que debo anular o lo que debo hacer para que el ComboBox dibuje la imagen y la cadena, al igual que cuando la lista se expande, cuando se selecciona un elemento?
Muchas gracias; ¡Salud!
¡Perfecto! Eso funciona maravillosamente! Muchas gracias. No tenía idea de que el control simplemente estaba usando un objeto TextBox en la parte superior; eso parece una implementación interesante (y no instintiva). – JToland