2011-11-30 67 views
0

用户打开一个子窗体,调整它的大小一点点,然后打开另一种形式,和我打电话为什么Cascading也在调整表单的大小?

this.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade); 

当我们打开一个子窗体。所以是它级联他们,但也调整他们的一些默认大小,我不知道它从哪里得到它。是的,我希望第二种形式可以级联到第一种形式,但不是我不希望每次调用这种级联方法时都要更改以前形式的大小和位置。我应该怎么做才能解决这个问题?

回答

1

这就是级联:它调整它们并将它们排列在一个步骤配置中。

如果你只是想使你的其他形式的顶端,你可以尝试调用myChildForm.Select();

你可以尝试设置MinimumSizeMaximumSize性能等于级联前各种形式的Size,然后事后恢复它们。

List<Size> minSizes = new List<Size>(); 
List<Size> maxSizes = new List<Size>(); 
for (int i = 0; i < this.MdiChildren.Count(); i++) { 
    minSizes.Add(this.MdiChildren[i].MinimumSize); 
    maxSizes.Add(this.MdiChildren[i].MaximumSize); 
    this.MdiChildren[i].MinimumSize = this.MdiChildren[i].Size; 
    this.MdiChildren[i].MaximumSize = this.MdiChildren[i].Size; 
} 

this.LayoutMdi(MdiLayout.Cascade); 

for (int i = 0; i < this.MdiChildren.Count(); i++) { 
    this.MdiChildren[i].MinimumSize = minSizes[i]; 
    this.MdiChildren[i].MaximumSize = maxSizes[i]; 
} 
相关问题