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