2016-08-16 10 views
1

私はWinForms C#.NET 3.5デスクトップソフトウェアで作業しています。FlowLayoutPanelにユーザコントロールを正しく配置する

UserControlは、FlowLayoutPanelGroupBoxのみを追加しています。私は、次のコードをしようとすると:

GroupBox gb = new GroupBox(); 

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

GroupBoxが美しく示されています:

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

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

と試してみてください。

enter image description here

しかし、私はGroupBoxUserControl中に入れしようとすると、 UserControlを表示するために、GroupBoxは改行します:

enter image description here

なぜですか?

これはテストコードです。私はFlowLayoutPanelで追加する必要があるいくつかの別々のファイルでユーザーコントロールを持っています。それもこの方法で壊れます。

解決方法

答えて

2

おそらくもっと現実的な例が必要です。実際にはUserControlが事前設計されているかどうかによって異なります。設計時に正しいサイズが設定されていると、正しく表示されます。実行時の例で示した問題は、ユーザーコントロールにグループボックスのサイズとは異なる既定のサイズがあるため、子グループボックスがクリッピングされていることです。

あなたがクリッピングを回避し、グループボックスのサイズを使用したい場合、あなたはAutoSizeMode.GrowAndShrinktrueUserControl.AutoSizeModeUserControl.AutoSizeプロパティを設定する必要があります。

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); 
関連する問題