C#: Динамическое добавление элементов формы

Достаточно часто мне приходят сообщения с вопросом: «Как динамически добавить элемент на форму?». Сегодня я опишу эту достаточно не трудную процедуру.

Ответ на данный вопрос, на самом деле, можно посмотреть в файле 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);
}

Вот собственно и все. Запускаем проект. Нажав на кнопку, правее появится еще одна кнопка с текстом «Пример». Нажатие на новую кнопку создаст еще одну кнопку и т.д. Все достаточно просто и понятно.

Запись опубликована в рубрике C# с метками , , , , . Добавьте в закладки постоянную ссылку.