2016-09-16 73 views
1

我在表单中添加了一个TableLayoutPanel,现在我正在尝试创建列动态以在此TableLayoutPanel中添加按钮。问题是仅创建了一列,并且只显示一个按钮。如何使用TableLayoutPanel创建动态列?

我该怎么做?

尝试。

private void findAllCategorias() { 
      IList<CategoriaProduto> _lista = cDAO.findAll();    
      int count = 0; 
      foreach (CategoriaProduto x in _lista) { 
       Button b = new Button(); 
       b.Name = Convert.ToString(x.id); 
       b.Text = x.descricao; 
       b.Size = new Size(100,65); 
       b.Click += new EventHandler(btnCategoria_Click); 
       b.BackColor = Color.FromArgb(255,255,192);      
       ToolTip tt = new ToolTip(); 
       tt.SetToolTip(b, Convert.ToString(x.id)); 
       panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); 
       panel.Controls.Add(b, count++, 0);     
      } 
     } 

我想这个结果

enter image description here

+1

' panel.ColumnCount ++'? – adv12

回答

2

添加ColumnStyle是不够的(实际上它是可选的),你也需要递增ColumnCount属性:

// ... 
panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); 
panel.ColumnCount++; 
panel.Controls.Add(b, count++, 0);     
// ... 
+0

完美...非常感谢! – FernandoPaiva