none
attribuer une image à un élément de toolstripcombobox RRS feed

  • Question

  • Bonjour,

    est ce possible d'ajouter une image a chaque item de toolstripcombobox??

    les imageslist sont la solution?en faite je ne trouve pas de propriété pour ce controle qui permet d'affecter des images à partir d'un path défini

     

    Cordialement


    Best Regards Please mark as answer if my post is helpful
    mardi 14 juin 2011 09:12

Réponses

  • Bonjour,

    Oui, il est possible. Dison que votre ToolStripComboBox se trouve sur une forme dans un ToolStrip. Vous pouvez utiliser ImageList pour créer la liste des Images et puis il faut définir l’évènement DrawItem de l’objet ToolStripComboBox.ComboBox. Vous pouvez trouver un exemple (en VB) pour un ComboBox sur le lien suivant :

    http://www.devasp.net/net/articles/display/365.html

    Pour l’adapter à vos besoins vous pouvez utiliser le code suivant (en C#):

    public partial class Form1 : Form

        {

            System.Windows.Forms.ComboBox.ObjectCollection items;

            ImageList images;

     

            public Form1()

            {

                InitializeComponent();

     

                ToolStripComboBox tscb1 = toolStrip1.Items.OfType<ToolStripComboBox>().First();

     

                tscb1.ComboBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.comboBoxImage_DrawItem);

                tscb1.ComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

                tscb1.ComboBox.DrawMode = DrawMode.OwnerDrawVariable;

                tscb1.ComboBox.ItemHeight = images.ImageSize.Height;

                tscb1.ComboBox.Width = images.ImageSize.Width + 20;

                tscb1.ComboBox.MaxDropDownItems = images.Images.Count;

     

                items = tscb1.ComboBox.Items;

            }

     

            private void comboBoxImage_DrawItem(object sender, DrawItemEventArgs e)

            {

                if (e.Index != -1)

                {

                    Bitmap bmp = new Bitmap(@"D:\Cipri\Chestii utile\CIPRImic.jpg");

                    e.Graphics.DrawImage(bmp, e.Bounds.Left, e.Bounds.Top);

                    e.Graphics.DrawString(items[e.Index].ToString(), e.Font, new SolidBrush(Color.Black), e.Bounds.Left + bmp.Width + 5, e.Bounds.Top);

                }

            }

    }

    Il reste pour vous seulement à initialiser la liste des image et les items de votre ComboBox.

    Cordialement,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    • Marqué comme réponse YosrJ vendredi 17 juin 2011 08:42
    vendredi 17 juin 2011 07:54