Динамическое создание элементов на форме.

      Как правило компоненты формы предопределены заранее. Динамический ввод новых данных для формы нужны тогда, когда нужно ввести сразу много новых данных. Например, магазин товаров, и пользователь хочет добавить в корзину несколько товаров, заранее не определить сколько товаров добавит пользователь. Реализуем пример динамического создания кнопки.
Запустите Microsoft Visual Studio и перейдите в меню - Файл - Создать - Проект...
В открывшемся диалоговом окне "Создать проект", выберете "Приложение Windows Form" и введите имя проекта.
Добавьте компонент Button из панели элементов.
      Перейдите в свойства добавленного компонента, сделав клик правой клавишей мыши по нему.
      В открывшийся вкладке со свойствами, найдите свойство Text и введите напротив него текст "Источник".
      Перейдите в события компонента нажав в той же вкладке где и свойства на кнопку в виде молнии.
      Найдите среди событий компонента, событие Click и сделайте двойной клик правой клавишей мыши напротив него.
      У вас откроется или станет активной вкладка с кодом формы и курсор будет установлен на событие Click компонента, добавьте приведенный ниже код в это событие.
int colbutton = 0;
private void button1_Click(object sender, EventArgs e)
{
    //Получаем ссылку на кнопку, на которую нажали
    Button oldbutton = (Button)sender;
    //Создаем новую кнопку
    Button newbutton = new Button();
    //Меняем текст на новой кнопке
    newbutton.Text = "Кнопка №" + colbutton;
    newbutton.Width = oldbutton.Width;
    newbutton.Height = oldbutton.Height;
    //Размещаем ее ниже (на 10px) кнопки, на которую мы нажали
    newbutton.Location = new Point(oldbutton.Location.X,oldbutton.Location.Y + oldbutton.Height + 10);
    //Добавляем событие нажатия на новую кнопку 
    //(то же что и при нажатии на исходную)
    newbutton.Click += new EventHandler(button1_Click);
    //Добавляем элемент на форму
    this.Controls.Add(newbutton);
    colbutton++;
}
      Запустим проект нажав на клавиатуре клавишу F5 или отыскав на панели инструментов кнопку "Начать отладку".
      После запуска приложения нажав на кнопку "Источник", у вас появится под ней новая кнопка, если вы нажмете на только что созданную кнопку то вы получите под ней еще одну и так далее. Единственным недостатком такого кода является то, что компоненты уходят за границы формы и вам необходимо каждый раз ее расширять.
      Для устранения данной проблемы перейдите в свойства формы и отыщите свойство AutoScroll и установите его значение в true. Данное свойство управляет автоматическим появлением полосы прокрутки, когда содержимое элемента управления больше его отображаемой области.
      Запустите проект и поочередно нажмите несколько раз на кнопки, пока созданные кнопки не выйдут за отображаемую часть формы, после чего у вас появится полоса прокрутки позволяющая не изменяя размеров формы просматривать элементы формы.
По такому же примеру вы можете создавать любые компоненты, удачных вам экспериментов.

Ссылка для скачивания примера: Яндекс.Диск


Комментариев нет:

Отправить комментарий

Большая просьба, не писать в комментариях всякую ерунду не по теме!