2013-04-08 19 views
7

FlowLayoutPanelの中に画像を動的に読み込んでいます。私はこのパネルを自動サイズ調整する必要がありますが、縦のみにします。FlowLayoutPanel垂直方向の自動サイズ?

これは可能ですか、もしそうなら、私はそれを達成するためにどのように行くのですか?

+0

_可能ですか?_試しましたか? –

+0

私は、FlowLayoutPanel = trueからAutoSizeプロパティを設定するだけです。パネルは水平方向に増加します – Ladessa

+1

追加するコントロールのFlowBreakプロパティをTrueに設定します。コードに追加する場合は、パネルのSetFlowBreak()メソッドを使用します。 –

答えて

10

シンプル、タイプコントロールのイベントを追加、コメントを追加しました:

private void flowLayoutPanel1_ControlAdded(object sender, ControlEventArgs e) 
{ 
    if (flowLayoutPanel1.Controls.Count % 10 == 0) 
     flowLayoutPanel1.SetFlowBreak(e.Control as Control, true); 
} 

AutoSize = true

を設定し、私はdinamicallyパネルからサイズを設定しなかったflowdirection = LeftToRight

+0

それは動作しますが、私が必要とするように。 1行につき1枚の画像しか読み込めません。 – Ladessa

+0

1行に何枚の画像を入れましたか? –

+0

10行の写真 – Ladessa

1

を設定します。例:

int newHeight= listImages.Count/10 * 100; 
       flowLayoutPanel1.Size = new Size(1143, newHeight); 

それは私のために動作します。 Thx all

+0

'int newHeight = listImages.Count/10 * 100;'はintと同じです 'newHeight = listImages.Count * 10;' –

+0

私は知っていますが、* int newHeight = listImages.Count/10 * 100 *; 10行が1行あたりのピクチャの数であり、100が各1つからの高さであることを理解してください。 – Ladessa

+0

ヒント:このように、さらに読みやすく保守しやすいでしょう: 'int newHeight = listImages.Count/numberOfPicturesPerLine * pictureHeight' 'const int numberOfPicturesPerLine = 10;' –

関連する問題