2011-10-08 36 views
0

我正在使用SplitContainer垂直分割MDI表單。在左側面板上我有一個樹形控件,在右側面板上顯示了子窗體。我試圖確保在任何時候只有一個子窗體的實例是開放的。爲此,我正在檢查MdiChildren計數。但是,將子窗體添加到拆分容器的右側面板後,mdi子窗體計數重置爲零。與MDI和SplitContainer衝突

subjectForm.MdiParent = this; 
Console.WriteLine("B => " + this.MdiChildren.Length); 
this.splitContainer1.Panel2.Controls.Add(subjectForm); 
Console.WriteLine("A => " + this.MdiChildren.Length); 

在上面的代碼示例中,這是我得到

B => 1的反應; A => 0

任何想法我錯了?

+0

您不能在面板中放置MDI子窗口。 Winforms忘記拋出異常。當你想這樣做時,不要使用MDI。 –

+0

有什麼其他方法可以實現這一目標?我應該用Splitter嗎?但MS建議否則。或者有沒有辦法擺脫SplitContainer中的右側面板。 – cosmos

+0

只需在面板上放置一個UserControl。 –

回答

0

花了很長時間試圖與SplitContainer一起工作後,我用分離器替換了它,並且按預期工作。但是,我仍然不確定分離式容器控制的實用性或需求。