Pour un projet en cours, j'avais besoin d'un menu déroulant avec des noms de couleur (chaînes) avec un petit exemple de carré de couleur à côté (image). Donc, j'ai été capable de concevoir un ComboBox personnalisé pour y parvenir. Cependant, j'ai un problème .... quand je choisis un article de la liste, l'exemple de couleur n'apparaît pas, seulement le nom de la couleur fait. (Voir les exemples ci-dessous)Dessin d'images dans une zone de liste déroulante personnalisée
Expanded Menu:
Après le point est choisi:
Afin de tirer les couleurs à côté des cordes pour commencer, je utilisé:
// 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);
}
Où un DropDownItem contenait l'image et la chaîne à dessiner. Alors ... est-ce que quelqu'un sait ce que je dois contourner ou ce que je dois faire pour que ComboBox dessine l'image et la chaîne à la fois, comme il le fait déjà quand la liste est développée, quand un élément est sélectionné?
Merci beaucoup; À la votre!
Parfait! Cela fonctionne magnifiquement! Merci beaucoup. Je n'avais aucune idée que le contrôle utilisait simplement un objet TextBox en haut; Cela semble être une implémentation intéressante (et non-intuitive). – JToland