2016-08-16 19 views
1

我正在使用WinForms C#.NET 3.5桌面軟件。在FlowLayoutPanel上正確放置用戶控件

我想添加UserControl只包含GroupBoxFlowLayoutPanel。當我嘗試下面的代碼:

GroupBox gb = new GroupBox(); 

flowLayoutPanelConfig.Controls.Add(gb); 
flowLayoutPanelConfig.SetFlowBreak(gb, true); 

GroupBox精美圖所示:

enter image description here

但是,當我試圖把在GroupBox一個UserControl

GroupBox gb = new GroupBox(); 
UserControl uc = new UserControl(); 
uc.Controls.Add(gb); 

flowLayoutPanelConfig.Controls.Add(uc); 
flowLayoutPanelConfig.SetFlowBreak(uc, true); 

,並嘗試爲了顯示UserControl,GroupBox中斷:

enter image description here

這是爲什麼?

這是一個測試代碼。我在一些單獨的文件中有用戶控件,我需要在FlowLayoutPanel中添加。這也打破了這種方式。

如何解決這個問題?

回答

2

可能是一個更現實的例子是需要的。這取決於UserControl是否是預先設計的,因此在設計時間內設置了正確的尺寸,在這種情況下,它將正確顯示。您已經顯示的運行時示例中的問題是,用戶控件的默認大小與組框大小不同,因此剪裁了子組框。

如果你想避免剪切並使用該組框的大小,你應該UserControl.AutoSize屬性設置爲trueUserControl.AutoSizeModeAutoSizeMode.GrowAndShrink

GroupBox gb = new GroupBox(); 
UserControl uc = new UserControl(); 
uc.AutoSize = true; 
uc.AutoSizeMode = AutoSizeMode.GrowAndShrink; 
uc.Controls.Add(gb); 

flowLayoutPanelConfig.Controls.Add(uc); 
flowLayoutPanelConfig.SetFlowBreak(uc, true);