Рисование изображений в настраиваемом поле со списком

Для текущего проекта мне понадобилось выпадающее меню с названиями цветов (строками) с небольшим квадратом цвета рядом с ним (изображением). Итак, я смог разработать собственный ComboBox для этого. Однако у меня есть одна проблема ... когда я выбираю элемент из списка, пример цвета не отображается, отображается только имя цвета. (См. Примеры ниже)

Расширенное меню:

alt text

После выбора элемента:

alt text

Чтобы начать рисовать цвета рядом со строками, я использовал:

    // 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);
    }

Где DropDownItem содержал изображение и строку для рисования. Итак ... кто-нибудь знает, что мне нужно переопределить или что мне нужно сделать, чтобы ComboBox рисовал изображение и строку, как это уже происходит, когда список раскрывается, когда элемент выбран?

Большое спасибо; Ура!

8
задан JToland 17 November 2010 в 18:45
поделиться