Проблемы с FlowLayoutPanel внутри панели с AutoSize - PullRequest
2 голосов
/ 10 апреля 2010

У меня есть следующая иерархия элементов управления:

Form
  Panel (AutoSize = true, AutoSizeMode = GrowAndShrink, Dock = Top)
    FlowLayoutPanel (AutoSize = true, AutoSizeMode = GrowAndShrink, Dock = Top)
      Control1, Control2, Control3, Control4, ...
    FlowLayoutPanel (AutoSize = true, AutoSizeMode = GrowAndShrink, Dock = Top)
      Control1, Control2, Control3, Control4, ...

Вот как это макеты разных размеров:

Полностью видны все 8 кнопок, но панель забыла сжать

Полностью видны все 8 кнопок, но панель забыла сжать http://img534.imageshack.us/img534/3575/panels1.png

Первая FlowLayoutPanel полностью видна, но вторая видна только наполовину, button8 отсутствует

Первая FlowLayoutPanel полностью видна, но вторая видна только наполовину, button8 отсутствует http://img301.imageshack.us/img301/5296/panels2.png

Первая FlowLayoutPanel полностью видна, но вторая видна только наполовину, button7 и button8 отсутствуют

Первая FlowLayoutPanel полностью видна, но вторая видна только наполовину, button7 и button8 отсутствуют http://img697.imageshack.us/img697/4644/panels3.png

Первая FlowLayoutPanel полностью видна, но вторая видна только на четверть, кнопки 6, button7 и button8 отсутствуют

Первая FlowLayoutPanel полностью видна, но вторая видна только четверть, кнопки 6, button7 и button8 отсутствуют http://img168.imageshack.us/img168/6428/panels4.png

Как видите, я не удовлетворен этим поведением. Что я могу сделать, чтобы получить всю эту работу?

1 Ответ

1 голос
/ 10 апреля 2010

Мне кажется, что это ошибка ... вы можете сообщить об этом в Microsoft.

Один из возможных обходных путей: попробуйте использовать tableLayoutPanel вместо внешней панели. Как это:

Form
    TableLayoutPanel (1 column, 2 rows with 50% size type)
        FlowLayoutPanel1 (AutoSize = true, in first row of the TableLayoutPanel, Dock = Fill)
            Button1, Button2, Button3, Button4, ...
        FlowLayoutPanel2 (SutoSize = true, in second row of the TableLayoutPanel, Dock = Fill)
            Button1, Button2, Button3, Button4, ...
...