Не работает параметр AutoSize для Rows в TableLayoutPanel

Есть TableLayoutPanel в которую динамически добавляються элементы Button. Хочу установить параметр AutoSize для высоты каждой строки (Row), однако параметр срабатывает только для первой из строк.

Код:

private void editEventsLoad(object sender, EventArgs e)
{
    ea_tableLayoutPanel.RowCount = 0;
    ea_tableLayoutPanel.RowStyles.Clear();

    // получаем все обьекты event и добавляем кнопку для них в TableLayoutPanel
    for (int i = 0; i < events.Length; i++)
    {
        EventObject _event = events[i];

        ea_addButtonToEventList(
            $"{_event.From.ToShortDateString()}, {_event.From.ToShortTimeString()}  " +
            $"{_event.To.ToShortDateString()}, {_event.To.ToShortTimeString()}" +
            $" - " +
            $"{_event.EventName}", i.ToString());
        
    }
}

// Добавляем кнопку в список
private void ea_addButtonToEventList(string text, string IndexInTheEventsArray)
{
     ea_tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.AutoSize));
     ea_tableLayoutPanel.Controls.Add(ea_getButton(text, IndexInTheEventsArray), 0, ea_tableLayoutPanel.RowCount++);
}

// создаем кнопку с нужными параметрами
private Button ea_getButton(string text, string index)
{
    Button button = new Button();

    button.Text = text;
    button.AutoSize = true; 
    button.MinimumSize = new Size(500, 50);
    button.TextAlign = ContentAlignment.MiddleCenter;
    button.Font = new Font("Bahnschrift Light", 12f, FontStyle.Regular);
    button.Dock = DockStyle.Fill;
    button.BackColor = Color.White;
    button.Tag = index;

    return button;
}    

Далее пример с измененным текстом на кнопке (чтобы сделать кнопку больше чем минимум):

пример

На первой кнопке видно полный текст, на остальных размер с параметра MinSize. Как я понимаю проблема не с размером кнопки, потому что с первой все работает.

Заранее спасибо за помощь.


Ответы (1 шт):

Автор решения: Yuki Rin

Проблема была в использовании Button и тем что AutoSize в этом элементе не увеличивает высоту кнопки. Поэтому при ограничении максимальной ширины он не переносит продолжение текста на следующие строки. Решением стало использование Label внутри Button, у которого AutoSize работает в этом случае "корректнее". Так же было замечено что лучше использовать FlowLayoutPanel для таких задач.

→ Ссылка