0

我有 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);

这似乎运作良好。如果我最大化/自定义大小父表单,子表单会相应地调整大小。

如果我对拆分器事件处理程序使用相同的东西,它就不会以相同的方式工作。

谢谢,

4

1 回答 1

0

尝试过这样的事情吗?

Form.Anchor = AnchorStyles.Left | AnchorStyles.Top;
于 2013-06-12T07:46:30.593 回答