У меня есть TableLayoutPanel с 3 столбцами и 1 строкой:
(Кнопка «Удалить», «Контроль пользователя», «Добавить»)
Я хочу, чтобы кнопка Добавить добавила новую строку, аналогичную приведенной выше, под нажатой кнопкой:
например:
ДО:
- (Удалить кнопку 1, пользовательский элемент управления 2, добавить кнопку 1)
- (Удалить кнопку 2, Пользовательский контроль 2, Добавить кнопку 2)
После нажатия «Добавить кнопку 1»:
- (Удалить кнопку 1, пользовательский элемент управления 2, добавить кнопку 1)
- (Удалить кнопку 3, пользовательский элемент управления 3, добавить кнопку 3)
- (Удалить кнопку 2, Пользовательский контроль 2, Добавить кнопку 2)
Мне удалось добавить строку в конец таблички, но не посередине: она продолжает портить компоновку.
Вот фрагмент обработчика события:
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);
}
Это не работает должным образом.
Я что-то не так делаю? есть предложения?