Динамический нисходящий список элементов управления в WindowsForms и C #? - PullRequest
4 голосов
/ 26 августа 2008

В нашем проекте SharpWired мы пытаемся создать компонент загрузки, аналогичный окнам загрузки в Firefox или Safari. То есть, один загружаемый сверху вниз список загрузок, представляющих собой пользовательские элементы управления, содержащие индикаторы выполнения, кнопки и что нет.

Требования заключаются в том, что должен быть один единственный список с одним элементом в каждой строке. Каждый элемент должен быть пользовательским элементом управления. Весь список должен быть динамически изменяемого размера, так что, когда вы делаете его длиннее / короче, список добавляет полосу прокрутки, когда это необходимо, а когда вы делаете его тоньше / шире, настраиваемые элементы управления должны иметь размер ширины списка.

Мы пытались использовать FlowLayoutPanel, но не получили изменения размера, чтобы работать так, как мы хотим. Предпочтительно нам нужно только установить привязку пользовательских элементов управления влево и вправо. Мы также подумали об использовании TableLayoutPanel, но обнаружили, что добавление строк динамически слишком велико.

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

ура!
/ Адам

Ответы [ 2 ]

2 голосов
/ 06 марта 2009

Если вы не хотите использовать привязку данных (через элемент управления DataRepeater, как упоминалось выше), вы можете использовать обычный элемент управления Panel и установить для его свойства AutoScroll значение true (для включения полос прокрутки).

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

.
1 голос
/ 26 августа 2008

.NET 3.5 SP1 представил DataRepeater Элемент управления Windows Forms, который звучит так, как будто он делает то, что вы хотите. Свяжите его со списком «загрузок» (или с тем, что представляет ваш список) и настройте каждую панель элементов для включения необходимых вам элементов управления.

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