Как создать динамические столбцы с помощью 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);                
            }
        }

Мне нужен этот результат

введите здесь описание изображения


person FernandoPaiva    schedule 16.09.2016    source источник


Ответы (1)


Добавить ColumnStyle недостаточно (на самом деле это необязательно), вам также необходимо увеличить ColumnCount:

// ...
panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
panel.ColumnCount++;
panel.Controls.Add(b, count++, 0);                
// ... 
person Ivan Stoev    schedule 16.09.2016