自动调整mdiparent中的多个子窗体,面板和mdi C#

时间:2013-06-12 07:30:40

标签: c# .net winforms mdi mdichild

我有mdiparent表单,其中包含菜单和左侧的面板,其中包括treeview。父表单的剩余空间可以包括多个窗口,具体取决于用户打开它的数量。面板边缘有一个分割器[左侧有树视图的分割器]可以增加或减少面板的宽度,从而增加图表的面积。

我尝试在拆分器移动事件处理程序中使用mdilayout,但它不起作用。

first pic http://www.imageurlhost.com/images/x6pf89yp8x4cnm1hb4x_first.png

红色垂直线是用于增加/减小左侧面板宽度的分割器。 最初,右侧没有空间。打开一个新的儿童窗户非常适合剩下的空间。

2 http://www.imageurlhost.com/images/b1pu4lztl7eel12b1ho_second.png

Splitter向左移动。在右侧有一个空间,儿童形式不会调整大小并适合该区域。

3 http://www.imageurlhost.com/images/f9ep8rd4fem5aynhc9z_third.png

Splitter向左移动更多,右侧空间不断增加。 如果我再打开一个图形,那么4个旧的和1个新的,总共5个表格填充完全适合并且将使用空间。如果我再次移动分离器,则会再次引入右侧的空间。

4 http://www.imageurlhost.com/images/e3fup4nrfb7aj7d13e5_four.png

每次分割器移动时,如何使所有子窗体完全适合剩余空间?

Splitter移动/鼠标事件处理程序中的代码。

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

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

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

谢谢,

1 个答案:

答案 0 :(得分:0)

试过这样的事情?

Form.Anchor = AnchorStyles.Left | AnchorStyles.Top;