TableLayoutPanel Controls.Add Problem - PullRequest
       6

TableLayoutPanel Controls.Add Problem

2 голосов
/ 09 ноября 2009

У меня есть TableLayputPanel с 2 столбцами и 4 строками, и я пытаюсь добавить к ней кнопки во время выполнения. Я хочу динамически добавить каждую кнопку в первую ячейку:

private int nextIndex = 1;

private void bAddButton_Click(object sender, EventArgs e)
{
    Button newButton = new Button();
    newButton.Text = nextIndex.ToString();
    tableLayoutPanel1.Controls.Add(newButton, 0, 0);  // first cell
    nextIndex++;
}

Насколько я понимаю, это должно сдвинуть все существующие кнопки вверх на ячейку. Кажется, это работает первые три раза, но после этого несколько раз вставляет новую кнопку во 2-ю ячейку, затем в 3-ю ячейку, затем в 4-ю и т. Д.

Существует ли ограничение на то, сколько раз вы можете вызывать Controls.Add (ctrl, column, row) для данной ячейки?

Я немного застрял, что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

У меня только что была такая же проблема! Что помогло мне:

  1. В режиме просмотра формы щелкните таблицу

  2. Установите для AutoScroll и AutoSize значение True

  3. Перейти к редактированию строк и столбцов

  4. Нажмите на первую (и, вероятно, единственную) строку и установите для ее Тип размера значение AutoSize

Все новые строки также будут иметь размер Тип Авторазмер. Благодаря этому мои ряды расположены и изменяются в размерах.

0 голосов
/ 09 ноября 2009

Чтобы добавить несколько кнопок в одну ячейку, необходимо добавить панель в качестве единственного элемента управления в ячейке, а затем добавить кнопки на эту панель.

...