如何使用TableLayoutPanel创建动态列?

时间:2016-09-16 18:19:08

标签: c# windows-forms-designer 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 个答案:

答案 0 :(得分:2)

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

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