У меня есть форма mdiparent с меню и панелью слева, которая включает в себя древовидную структуру. оставшееся пространство родительской формы может включать в себя несколько окон в зависимости от того, сколько пользователь хочет ее открыть. На краю панели есть разделитель [тот, что с древовидным представлением, слева], который может увеличивать или уменьшать ширину панели и тем самым увеличивать область для диаграммы.
Я попытался использовать mdilayout в обработчике события перемещения разделителя, но это не сработало.
http://www.imageurlhost.com/images/x6pf89yp8x4cnm1hb4x_first.png
Красная вертикальная линия — это разделитель для увеличения/уменьшения ширины панели слева. Изначально справа места нет. открытие нового дочернего окна хорошо вписывается в оставшееся пространство.
http://www.imageurlhost.com/images/b1pu4lztl7eel12b1ho_second.png
Сплиттер переместился влево. Справа есть пробел, дочерняя форма не изменяет размер и не вписывается в область.
http://www.imageurlhost.com/images/f9ep8rd4fem5aynhc9z_Third.png
Разделитель сместился больше влево, а пространство справа продолжает увеличиваться. Если я открою еще один график, то 4 старых и 1 новый, всего 5 форм идеально впишутся, и пространство будет использовано. если я снова передвину сплиттер, то снова появится пространство с правой стороны.
http://www.imageurlhost.com/images/e3fup4nrfb7aj7d13e5_four.png
Как я могу сделать так, чтобы все дочерние формы точно соответствовали оставшемуся пространству при каждом перемещении разделителя?
Код в обработчике событий Splitter move/mouseup.
this.LayoutMdi(MdiLayout.TileHorizontal);
Дочерние формы [окна графа] имеют
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
Родительская форма [которая на картинке]
this.leftpanel.Dock = System.Windows.Forms.DockStyle.Left;
this.leftpanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
this.AutoSize = true;
Если размер родительской формы изменен, то обработчик события изменения размера также активируется.
this.LayoutMdi(MdiLayout.TileHorizontal);
который, кажется, работает хорошо. если я максимизирую / нестандартный размер родительской формы, дочерние формы соответственно изменяют размер.
если я использую то же самое для обработчиков событий сплиттера, это не работает таким же образом.
Спасибо,