пользовательский контроль в списке выбора - лучший способ сделать это? - PullRequest
3 голосов
/ 08 декабря 2008

Работая в C # win формах, я пытаюсь создать список элементов, в которых каждый элемент скомпрометирован из значка и 3 ярлыков в определенном макете.

Вот иллюстрация

http://hosting04.imagecross.com/image-hosting-13/3535help.jpg

Пользователь должен иметь возможность выбрать одну строку, как в обычном ListView.

Моей первой попыткой было создание значка и меток в пользовательском элементе управления, а затем помещение пользовательского элемента управления в FlowLayoutPanel в вертикальную компоновку (которая создала бы список). Проблема была в выборе. Поскольку событие щелчка было захвачено пользовательским элементом управления, не было простого способа сообщить другим пользовательским элементам управления в списке, что элемент управления выбран, и если они выбраны в данный момент, их теперь следует отменить. (Надеюсь, это имеет смысл ...)

Я также пытался использовать какой-то пользовательский ListView с открытым исходным кодом, который нашел здесь: http://www.codeproject.com/KB/list/aa_listview.aspx но это слишком глючит.

Я также думал о создании пользовательского элемента управления, который будет наследовать от Listview и отображать мой пользовательский элемент управления в списке, но я также читал о ком-то, кто пытался это сделать и столкнулся с множеством трудностей.

Я был бы очень рад услышать любые ваши предложения.

Спасибо!

1 Ответ

2 голосов
/ 08 декабря 2008

То, что вы можете попробовать, это два пользовательских элемента управления. Один элемент управления, который у вас, похоже, уже есть, это значок и метки. Это будет внутренний контроль, который вы не можете создать вне своей сборки. Второй пользовательский элемент управления будет просто своего рода контейнером (вы можете сделать это либо фактически используя пользовательский элемент управления, либо наследуя от панели или чего-либо еще, не имеет значения). Это будет просто служить набором отдельных элементов и будет управлять выбором и отменой выбора элементов.

Обычно каждый пользовательский элемент управления вызывает событие click, к которому подключается пользовательский элемент управления контейнера. Затем он будет знать, что выбрать, а что отменить.

Надеюсь, что это имеет смысл!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...