Привет, программирующая общественность.
Пытаюсь сделать класс на основе ListBox-а, в котором хранится не строка, а какая-нибудь структура данных. Как подсунуть ListBox-у свою структуру на хранение?(поскольку не хотелось-бы добавлять динамические массивы в класс т.к. остальное все устраивает) Была мысль упаковать мою структуру в строку, для чего нужно заменить метод "ListBox.Items.Add" на свой, но че-то не пойму, как до него добраться(т.к. он является методом "ListBox.Items", а не ListBox...) Кажися, я ваще запутался, кажися..(недавно пересел с VC++ на C#). Может у кого были похожие мысли?
Я понимаю, что чего-то не понимаю, но чего я не понимаю я еще не понимаю...
05.01.04 18:17: Перенесено модератором из '.NET' — TK
Здравствуйте, Brovi, Вы писали:
B>Привет, программирующая общественность.
B>[skipped]
public class MyClass
{
private string myName;
public override string ToString()
{
//формируешь текстовое описание класса
return myName;
}
}
и потом:
MyClass mc=//...
//...
lstObjects.Items.Add(mc);
//...
MyClass cl=lstObjects.SelectedItem as MyClass
Здравствуйте, warlockonline, Вы писали:
[поскипано]
может я извращенец, но нельзя ли сделать что-то типа:
ListBox lbList;
...
lbList.Items.Add(int i, bool j, ...);//переопределенный метод
т.е. чтобы внутри моего Add происходила упаковка в строку и вызов Add базового класса?
Не сочтите за идиота, просто хотел сделать контрол на базе ListBox с OwnerDraw.. или не морочить себе голову и лучше добавлять по паре лишних строчек в код и использовать стандартный ListBox?
Здравствуйте, Brovi, Вы писали:
B>B>ListBox lbList;
B>...
B>lbList.Items.Add(int i, bool j, ...);//переопределенный метод
B>
B>т.е. чтобы внутри моего Add происходила упаковка в строку и вызов Add базового класса?
B>Не сочтите за идиота, просто хотел сделать контрол на базе ListBox с OwnerDraw.. или не морочить себе голову и лучше добавлять по паре лишних строчек в код и использовать стандартный ListBox?
Перегрузить member ListItemCollection нельзя — он sealed. Да и если бы можно было — это гораздо сложнее: фактически свой контрол ListBox'а надо создавать
Здравствуйте, Brovi, Вы писали:
B>Привет, программирующая общественность.
B>Пытаюсь сделать класс на основе ListBox-а, в котором хранится не строка, а какая-нибудь структура данных. Как подсунуть ListBox-у свою структуру на хранение?(поскольку не хотелось-бы добавлять динамические массивы в класс т.к. остальное все устраивает) Была мысль упаковать мою структуру в строку, для чего нужно заменить метод "ListBox.Items.Add" на свой, но че-то не пойму, как до него добраться(т.к. он является методом "ListBox.Items", а не ListBox...) Кажися, я ваще запутался, кажися..(недавно пересел с VC++ на C#). Может у кого были похожие мысли?
B>
B>
B>Я понимаю, что чего-то не понимаю, но чего я не понимаю я еще не понимаю...
B>
Храни ссылку на свою структуру
SetItemDataPtr(id, ptr)