2011-11-30 64 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]; 
} 
相關問題