C # изменить расположение элементов управления внутри FlowLayoutPanel - PullRequest
4 голосов
/ 18 февраля 2011

Я использую flowLayoutPanel для управления относительным местоположением. Я хотел бы изменить расположение элемента управления внутри flowLayoutPanel. когда я говорю местоположение, я не имею в виду control1 перед control2 или что-то подобное - я имею в виду, что если у меня есть 2 элемента управления, скажем, label и comboBox - высота comboBox равна 21, label ' Высота s равна 13, а высота flowLayoutPanel также равна 21. Я хочу поместить label в вертикальную середину flowLayoutPanel - ((21-13) / 2) сверху. Я не хочу что-то конкретное для вертикальной середины. Я хочу общее решение.

Ответы [ 3 ]

4 голосов
/ 18 февраля 2011

Вы также можете установить верхнее поле для метки (containerHeight-labelHeight) / 2

2 голосов
/ 18 февраля 2011

Макет потока не поможет: он просто упорядочивает все элементы управления в списке, корректируя их положение в соответствии с панелью. Вы можете создавать подгруппы, помещая элементы управления в таблицу в макете потока, или просто использовать таблицу для максимального контроля.

0 голосов
/ 18 февраля 2015
    int cIndex = this.FlowLayoutPanel1.Controls.GetChildIndex(Button1);
    int bIndex = this.FlowLayoutPanel1.Controls.GetChildIndex(Button1);

    this.FlowLayoutPanel1.Controls.SetChildIndex(Button1, bIndex);
    this.FlowLayoutPanel1.Controls.SetChildIndex(Button2, cIndex);
...