Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Потомок компонента ListBox


Автор: Injener 13.10.2006, 13:11
Создаю потомок компонента ListBox с целью раскраски элементов в разные цвета.
Код

public class ListBoxM : System.Windows.Forms.ListBox
{
    private System.ComponentModel.Container components = null;

    public ListBoxM()
    {
        InitializeComponent();
    }

    protected override void Dispose( bool disposing )
    {
        if( disposing )
        {
            if( components != null )
                components.Dispose();
        }
        base.Dispose( disposing );
    }

    private void InitializeComponent()
    {
        this.Name = "ListBoxM";
    }
}


Каким образом мне переопределить свойство Items, таким образом, чтобы добавилось поле Color:
Items[i].Color smile 

Автор: mr.DUDA 13.10.2006, 13:24
Можно сделать это не у листбокса, а у ListView:

- создать класс-наследник ListViewItem и добавить в него свойство Color
- добавлять в список не обычные ListViewItem-ы, а свои
- при обращении к Items, преобразовывать item к своему типу и работать с его Color-ом

Автор: Injener 13.10.2006, 13:57
Как я понял преобразовать
Код

(MyListViewItem)(ListView1.Items[i]).Color

Так, чтоли?

Автор: mr.DUDA 13.10.2006, 14:02
Цитата(Injener @  13.10.2006,  13:57 Найти цитируемый пост)
Как я понял преобразовать

да

Автор: Injener 13.10.2006, 14:09
Спасибо mr.DUDA !

Автор: ivashkanet 13.10.2006, 14:12
Цитата(Injener @  13.10.2006,  13:57 Найти цитируемый пост)
(MyListViewItem)(ListView1.Items[i]).Color

А разве это пройдет smile 
ИМХО, нужно так
Код
((MyListViewItem) ListView1.Items[i]).Color

А то он ругнется на то, что не может привести Сколор к Итему  smile 

Автор: Injener 13.10.2006, 14:18
Ты прав. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)