Необходимо реализовать динамическое добавление панелей на форму со своими элементами внутри (к примеру label).
1. Создаем форму и кидаем 2 кнопки. Один Button отвечает за добавление, второй настроим на удаление.
2. создадим массив panel и label.
Panel[] pan = new Panel[5];
Label[] lb = new Label[5];
Их прописать после этой строчки
public partial class Form1 : Form
{
должно получиться так
public partial class Form1 : Form
{
Panel[] pan = new Panel[5];
Label[] lb = new Label[5];
......
3. пропишем следующий код для динамического добавления контролов на нашу форму
private void button1_Click(object sender, EventArgs e)
{
int j = 0;
for (int i = 0; i < pan.Length; i++)
{
//создаем динамически панель
pan[i] = new System.Windows.Forms.Panel();
pan[i].Location = new System.Drawing.Point(101, 50 + i * 30);
pan[i].Name = "paneld" + i.ToString();
pan[i].Size = new System.Drawing.Size(75, 23);
pan[i].BorderStyle = BorderStyle.FixedSingle;
pan[i].TabIndex = i;
//создаем динамически label
lb[j] = new System.Windows.Forms.Label();
lb[j].Location = new System.Drawing.Point(5, 5);
lb[j].Name = "labeld" + j.ToString();
lb[j].Text = "labeld" + j.ToString();
//привязываем панель к форме
Controls.Add(pan[i]);
//привязываем label к панели
pan[i].Controls.Add(lb[j]);
j++;
}
}
4. Прописать следующий код для удаления контрола из формы и всех связанных с ним
private void button2_Click(object sender, EventArgs e)
{
//удаляем label из контролов
pan[1].Controls.Remove(lb[1]);
//освобождаем память для label
lb[1].Dispose();
//то же для панели
Controls.Remove(pan[1]);
pan[1].Dispose();
}