Достаточно часто мне приходят сообщения с вопросом: «Как динамически добавить элемент на форму?». Сегодня я опишу эту достаточно не трудную процедуру.
Ответ на данный вопрос, на самом деле, можно посмотреть в файле Form1.Designer.cs. Данный файл создается автоматически и дополняется нужными строками, при добавлении новых элементов на форму.
Опишем сам процесс:
1) Откроем конструктор проекта и добавим на него кнопку;
2) Нажмем два раза на созданную кнопку, что бы задать код на событие нажатия кнопки (имя события button1_Click);
Далее я покажу как сделать так, чтобы при нажатии на нашу кнопку, правее нее появилась еще одна кнопка, нажитие на которую создаст еще одну кнопку правее и т.д.
3) Пишем код:
private void button1_Click(object sender, EventArgs e)
{
//получаем ссылку на кнопку, на которую мы нажали
Button b = (Button)sender;
//Создаем новую кнопку
Button temp = new Button();
temp.Text = "Пример";
temp.Width = b.Width;
//Размещаем ее правее (на 10px) кнопки, на которую мы нажали
temp.Location = new Point(b.Location.X + b.Width + 10, b.Location.Y);
//Добавляем событие нажатия на новую кнопку
//(то же что и при нажатии на исходную)
temp.Click += new EventHandler(button1_Click);
//Добавляем элемент на форму
this.Controls.Add(temp);
}
Вот собственно и все. Запускаем проект. Нажав на кнопку, правее появится еще одна кнопка с текстом «Пример». Нажатие на новую кнопку создаст еще одну кнопку и т.д. Все достаточно просто и понятно.