Как добавить строки в середину TableLayoutPanel

У меня есть TableLayoutPanel с 3 столбцами и 1 строкой: (Удалить кнопку , User Control, Add button)

Я хочу, чтобы кнопка Add добавляла новую строку, аналогичную приведенной выше под нажатой кнопкой: например: BEFORE:

  1. (Remove button 1 , Пользовательский элемент управления 2, Добавить кнопку 1)
  2. (Удалить кнопку 2, Пользовательский элемент управления 2, Добавить кнопку 2)

После нажатия «Добавить кнопку 1»:

  1. (Удалить кнопку 1, Пользовательский элемент управления 2, Добавить кнопку 1)
  2. (Удалить кнопку 3, Пользовательский элемент управления 3, Добавить кнопку 3)
  3. (Удалить кнопку 2, Пользовательский элемент управления 2, Добавить кнопку 2)

Мне удалось добавить строку в конец tablelayoupanel, но не до середины: он продолжает портить макет. Вот фрагмент обработчика событий:

void MySecondControl::buttonAdd_Click( System::Object^ sender, System::EventArgs^ e )
{
   int rowIndex = 1 + this->tableLayoutPanel->GetRow((Control^)sender);

   /* Remove button */
   Button^ buttonRemove = gcnew Button();
   buttonRemove->Text = "Remove";
   buttonRemove->Click += gcnew System::EventHandler(this, &MySecondControl::buttonRemove_Click);

   /* Add button */
   Button^ buttonAdd = gcnew Button();
   buttonAdd->Text = "Add";
   buttonAdd->Click += gcnew System::EventHandler(this, &MySecondControl::buttonAdd_Click);

   /*Custom user control */
   MyControl^ myControl = gcnew MyControl();

   /* Add the controls to the Panel. */
   this->tableLayoutPanel->RowCount += 1;
   this->tableLayoutPanel->Controls->Add(buttonRemove, 0, rowIndex);
   this->tableLayoutPanel->Controls->Add(myControl, 1, rowIndex);
   this->tableLayoutPanel->Controls->Add(buttonAdd, 2, rowIndex);
}

Это не работает должным образом.

Я что-то делаю нг неправильно? есть предложения?

5
задан Eldad 1 November 2011 в 09:19
поделиться