2009-12-04 5 views
5

Описание Я пытался создать FlowLayoutPanel, который может быть расширен, например, горизонтально.Cannnot изменение размера Child Controls в элементе управления FlowLayoutPanel

FlowLayoutPanel и его суб компонент анкер был установлен в Top-Left-Right

FlowLayoutPanel направление было установлено в TopDown.

-> При регенерации FlowLayoutPanel его подкомпоненты не изменяются пропорционально.

Шаг воспроизвести

  1. Создать контроль FlowLayoutPanel на вашей форме.

  2. Установите FlowDirection для FlowLayoutPanel в TopDown.

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

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

  5. попытаться распространить FlowLayoutPanel на горизонтальном пути.

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

ответ

6

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

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

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

4

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

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

+0

Там должен быть вариант, как «FlowBreak», которая позволяет установить параметр изменения размера для отдельных элементов управления. У меня есть аналогичная ситуация, когда в общем наборе элементов управления есть одна конкретная панель, которую я хочу всегда использовать для полной ширины, но я все еще хочу автоматическую компоновку для всего остального. В текущей настройке я должен выбрать тот или другой ... Я хочу оба. –