Как правильно настроить FlowLayoutPanel для правильной стыковки. Исходя из исходного вопроса, вы хотите что-то вроде представления списка. Важно знать, что ОДИН из элементов в вашем списке (самый широкий) определяет «виртуальный столбец» в FlowLayoutPanel. Остальные предметы будут следовать за ним. Вы можете доказать это в конструкторе VS, перетащив один из элементов вправо. За ним будет следовать «виртуальный столбец», а если другие элементы привязаны, они будут следовать за виртуальным столбцом.
Обратите внимание, что вы не можете привязать элемент управления, определяющий столбец. К нему нечего привязывать, и будут происходить странные вещи.
Делайте все это программно, обрабатывайте событие Layout на FlowLayoutPanel и вставляйте код, подобный приведенному ниже. Важно, чтобы в конструкторе все элементы в вашем списке не были пристыкованы, а их привязка была установлена на «нет». Вчера я потратил на это целый день, и в дизайнере это помогло сделать приведенный ниже код.
flowLayoutPanel.Controls[0].Dock = DockStyle.None;
flowLayoutPanel.Controls[0].Width = flowLayoutPanel.DisplayRectangle.Width - lowLayoutPanel.Controls[0].Margin.Horizontal;
for (int i = 1; i < flowLayoutPanel.Controls.Count; i++)
{
flowLayoutPanel.Controls[i].Dock = DockStyle.Top;
}