2012-03-12 30 views
7

Düğmeli bir panom var. düğmelerim dinamik olarak oluşturulur. Her biri 4 düğmeli 4 satır istiyorum. ama sadece bir satır alırım.Denetleyici panosunda sarıcı

foreach (CategoriesDataSet.CategoriesRow category in DataRepository.Categories.Categories) 
     { 
      if (!category.CategoryName.Equals("ROOT")) 
      { 
       SimpleButton button = new SimpleButton(); 
       button.Text = category.CategoryName; 
       button.Tag = category.CategoryId; 
       button.Size = new Size(82, 70); 


       if (lastButton != null) 
        button.Left = lastButton.Right + 1; 


       lastButton = button; 
       button.Click += CategoryButtonClick; 
       categoriesPanel.Controls.Add(button); 
      } 
     } 

İstenilen sonuç:

x x x x 
X x x x 
x x x x 

cevap

2

Bu TREB en cevabın yorumları takip cevaptır.
döngü için kullanın ve için sol özelliğini kullanın.

for (int i = 0; i < DataRepository.Categories.Categories.Count; i++) 
{ 
    CategoriesDataSet.CategoriesRow category = DataRepository.Categories.Categories[i]; 

     if (!category.CategoryName.Equals("ROOT")) 
     { 
      SimpleButton button = new SimpleButton(); 
      button.Text = category.CategoryName; 
      button.Tag = category.CategoryId; 
      button.Size = new Size(82, 70); 

      button.Left = i%4*82; 
      button.Top = i*70; 

      button.Click += CategoryButtonClick; 
      categoriesPanel.Controls.Add(button); 
     } 
    } 
1

Yalnızca Left özelliğini ayarlayarak (yatay) sağa düğmelerini hareket ediyor: onları aşağı taşımak isterseniz

button.Left = lastButton.Right + 1; 

, bunun yerine dikey konumunu ayarlamak gerekir:

button.Top = lastButton.Bottom + 1; 

Bu şekilde yatay konumu değişmeden bıraktığınızdan, yeni düğme doğrudan sonun altında görünmelidir.

EDIT: Yorumunuza yanıt olarak, hangi sonucu istiyorsunuz? o A)

X X X X 

veya B)

X 
X 
X 
X 

veya o C'yi)

X 
X 
    X 
    X 

Ya hatları tarafından düğmeleri ile,

) Eğer D gibi bir şey demek do mi
X | X | X | X 

veya E)

X - X - X - X 
1 satırda
+0

Küçük yazım hatası: Şunu ;-) – brgerner

+0

hmpf ve "' Left' özelliğini ayarlayarak" 3 dakika cevap beni yendi adamdan o !!! Teşekkürler, düzeltildi ;-) – Treb

+0

cevabınız için teşekkürler, ama işe yaramıyor. Şimdi, düğmeler dikey olarak –