Невозможно изменить размеры дочерних элементов управления в элементе управления FlowLayoutPanel - PullRequest
6 голосов
/ 04 декабря 2009

Описание Я пытался создать FlowLayoutPanel, который можно расширить, например, по горизонтали.

FlowLayoutPanel и его привязка подкомпонента установлены в верхний левый-правый

Для направления FlowLayoutPanel установлено значение TopDown.

-> При изменении размера FlowLayoutPanel его подкомпоненты не изменяются соответствующим образом.

Шаг для воспроизведения

  1. Создайте элемент управления FlowLayoutPanel на своей форме.

  2. Установите для FlowDirection панели FlowLayout значение TopDown.

  3. Создайте элементы управления Button и поместите их в элемент управления FlowLayoutPanel.

  4. Выберите Button и FlowLayoutPanel и установите для их привязки значение Top-Left-Right

  5. Попробуйте расширить FlowLayoutPanel по горизонтали.

-> FlowLayoutPanel изменен, но не кнопка

Ответы [ 2 ]

7 голосов
/ 22 января 2010

FlowLayoutPanel предназначен только для динамического размещения дочерних элементов управления. Это не означает, что они автоматически изменят размеры в FlowLayoutPanel. Я предполагаю, что FlowLayoutPanel игнорирует свойства Anchor своих дочерних элементов управления.

Для достижения этого эффекта вам необходимо вручную изменить размер дочерних элементов управления в событии SizeChanged FlowLayoutPanel.

На данный момент, возможно, вы захотите пересмотреть, действительно ли FlowLayoutPanel является тем, что вы хотите использовать. Если вы знаете, что вам всегда нужна кнопка, чтобы заполнить ширину FlowLayoutPanel, вы можете также вставить ее в Panel и использовать привязки или установить ее свойство Dock.

5 голосов
/ 15 апреля 2013

Элемент управления FlowLayoutPanel вычисляет ширину подразумеваемого столбца из самого широкого дочернего элемента управления в столбце. Все остальные элементы управления в этом столбце со свойствами Anchor или Dock выровнены или растянуты, чтобы соответствовать этому подразумеваемому столбцу. Поведение работает аналогичным образом для горизонтальных направлений потока. Элемент управления FlowLayoutPanel вычисляет высоту подразумеваемой строки из самого высокого дочернего элемента управления в строке, и все закрепленные или закрепленные дочерние элементы управления в этой строке выровнены или имеют размер, подходящий для подразумеваемой строки.

проверьте документацию MSDN здесь http://msdn.microsoft.com/en-us/library/ms171633.aspx

...