Сведения о вопросе

None

04:47, 1st August, 2020

Теги

Динамический нисходящий список элементов управления в WindowsForms и C#?

Просмотров: 467   Ответов: 2

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

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

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

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

Ваше здоровье!
/Adam



  Сведения об ответе

dumai

02:43, 26th August, 2020

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

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


  Сведения об ответе

прога

20:54, 15th August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться