2013-04-08 16 views
7

Görüntüleri dinamik olarak bir FlowLayoutPanel içine yüklüyorum. Bu panelin otomatik boyutuna ihtiyacım var ama sadece dikey olarak.FlowLayoutPanel AutoSize yalnızca dikey mi?

Bu mümkün mü ve eğer öyleyse, bunu başarmaya nasıl başlarım?

+0

_It olası mı? _ Denediniz mi? –

+0

Sadece AutoSize özelliğini flowLayoutPanel = true; ancak panel yatay olarak artar – Ladessa

+1

Doğru'ya eklediğiniz kontrollerde FlowBreak özelliğini ayarlayın. Bunları kod içine eklerseniz, panelin SetFlowBreak() yöntemini kullanın. –

cevap

10

Basit, eklenen tip bir kontrol olayı ekleyin:

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

AutoSize = true

set flowdirection = LeftToRight

Ben dinamically panelinden Boyutu set vermedi
+0

Çalışmıyor ama çalışmıyor İhtiyacım olan Satır başına sadece 1 resim yüklüyor ... – Ladessa

+0

Bir satırda kaç fotoğraf var? –

+0

Bir resimdeki 10 resim – Ladessa

1

ayarlayın. Örnek:

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

Bana uyar. Thx all

+0

'int newHeight = listeImages.Count/10 * 100;' int ile aynıdır newHeight = listImages.Count * 10; ' –

+0

Biliyorum ama * int newHeight = listImages.Count/10 * 100 *; 10 satır sayısı ve 100 tane her birinden yüksekliği – Ladessa

+0

İpucu olduğunu anlamak için daha iyi: Bu bile daha okunaklı ve bakım yapılabilir: 'int newHeight = listeImages.Count/numberOfPicturesPerLine * pictureHeight' gibi tanımları ile const int sayısıOfPicturesPerLine = 10; ' –

İlgili konular