我有mdiparent窗体,它具有包含treeview的左侧菜单和面板。父窗体的剩余空间可以包括多个窗口,具体取决于用户他想打开它多少个窗口。在面板边缘有一个分割器[左边有树视图的分割器],可以增加或减少面板的宽度,从而增加图表的面积。自动调整mdiparent中的多个子窗体,面板和mdi C#
我曾尝试在分离器移动事件处理程序中使用mdilayout,但它不起作用。
first pic http://www.imageurlhost.com/images/x6pf89yp8x4cnm1hb4x_first.png
红色垂直线是增加/减少在左侧面板的宽度的分离器。 最初,右侧没有空间。打开一个新的儿童窗户适合剩下的空间。
2 http://www.imageurlhost.com/images/b1pu4lztl7eel12b1ho_second.png
分离器移动到左边。右侧有一个空格,子窗体不会调整大小并适合该区域。
3 http://www.imageurlhost.com/images/f9ep8rd4fem5aynhc9z_third.png
分配器移动更向左侧和空间上的权利不断增加。 如果我再打开一张图,然后再打开4张旧图和1张新图,总共5张图完全吻合良好,空间将被利用。如果我再次移动分离器,那么右侧的空间将再次被引入。
4 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);
这似乎运作良好。如果我最大化/自定义父级表单,子表单会相应调整大小。
如果我对splitter eventhandlers使用相同的东西,它不会以相同的方式工作。
谢谢,
我想你移动分离器的速度越快,获得的空间就越多。你的代码有问题,我们看不到它。 –
我编辑了这篇文章!是的,我移动得越快,我得到的空间就越多。如果我慢慢地移动它,我将获得更少的空间。这是一种随机的行为,我相信或者我不理解为什么快和慢将表现不同的逻辑。 –