UserControls を FlowLayoutPanel に追加すると、適切に表示されます。追加する前に UserControls の Dock または Anchor プロパティを変更すると、それらは追加されますが、レンダリングされません。
「方法:子コントロールのアンカーとドック」によると、これは可能です。
- 十分な数のコントロールを追加すると垂直スクロールバーが表示されるため、(描画していないにもかかわらず) コントロールが追加されていることがわかります。
- UserControls の "Dock" プロパティを "Left" または "None" に設定すると、それらはレンダリングされますが、他のオプションはレンダリングされません。
- UserControls の "Anchor" プロパティを Top | 以外に設定します。左はレンダリングされません。
- コントロールを追加する前または後にドックを設定しても違いはありません (追加、ドック対ドック、追加)。
- FlowLayoutPanel 自体がドッキング (Fill) され、FlowDirection が TopDown に設定され、WrapContents が false に設定され、AutoScroll が true に設定され、それ以外はデフォルトです。
.NET 3.5 を使用しています。
コメントへの回答として、コメントされた 2 行は、ドックを変更しようとした場所です。間違いなく 2 番目のスポットの方が理にかなっていますが、別のスポットを試してみました。
public void CreateObjectControl( object o )
{
ObjectControl oc = new ObjectControl();
oc.MyObject = o;
//This was a spot I mentioned:
//oc.Dock = DockStyle.Fill;
ObjectDictionary.Add( o, oc );
flowLayoutPanel1.Controls.Add( oc );
//This is the other spot I mentioned:
oc.Dock = DockStyle.Fill;
}