我有 mdiparent 表单,其中有菜单和左侧的面板,其中包括树视图。父窗体的剩余空间可以包括多个窗口,具体取决于用户要打开多少个窗口。面板边缘有一个分隔器[左侧有树视图的那个],它可以增加或减少面板的宽度,从而增加图表的面积。
我曾尝试在拆分器移动事件处理程序中使用 mdilayout,但它不起作用。
第一张图片 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
每次拆分器移动时,如何使所有子表单完全适合剩余空间?
拆分器移动/鼠标事件处理程序中的代码。
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);
这似乎运作良好。如果我最大化/自定义大小父表单,子表单会相应地调整大小。
如果我对拆分器事件处理程序使用相同的东西,它就不会以相同的方式工作。
谢谢,