Вы не можете закрепить что-либо внутри FlowLayoutPanel, оно просто игнорируется.
Проверьте ответ здесь явно опубликовано командой Microsoft.
Они говорят:
FlowLayoutPanel использует самый большой элемент управления для эффективного определения столбца / строки в нем.Приведенный ниже код устанавливает размер первого элемента управления в соответствии с шириной FLP, чтобы получить макет, аналогичный тому, который вы хотите.
private void flowLayoutPanel1_Layout(object sender, LayoutEventArgs e)
{
flowLayoutPanel1.Controls[0].Dock = DockStyle.None;
for (int i = 1; i < flowLayoutPanel1.Controls.Count; i++)
{
flowLayoutPanel1.Controls[i].Dock = DockStyle.Top;
}
flowLayoutPanel1.Controls[0].Width = flowLayoutPanel1.DisplayRectangle.Width - flowLayoutPanel1.Controls[0].Margin.Horizontal;
}
Главное - использовать событие Layout
.
Это решение работало для меня до определенного момента.Ваши UserControls должны иметь AutoSize
выключенным / оставаться одинакового размера.
В моем случае я хотел включить AutoSize
, чтобы позволить UserControl расширяться / сжиматься вертикально при заполнении ширины FlowLayoutPanel,
Мне пришлось искать другое решение.Но вышесказанное может помочь вам в вашем случае.