Как правило компоненты формы предопределены заранее. Динамический ввод новых данных для формы нужны тогда, когда нужно ввести сразу много новых данных. Например, магазин товаров, и пользователь хочет добавить в корзину несколько товаров, заранее не определить сколько товаров добавит пользователь. Реализуем пример динамического создания кнопки.
Запустите Microsoft Visual Studio и перейдите в меню - Файл - Создать - Проект...
В открывшемся диалоговом окне "Создать проект", выберете "Приложение Windows Form" и введите имя проекта.
Добавьте компонент Button из панели элементов.
Перейдите в свойства добавленного компонента, сделав клик правой клавишей мыши по нему.
В открывшийся вкладке со свойствами, найдите свойство Text и введите напротив него текст "Источник".
Перейдите в события компонента нажав в той же вкладке где и свойства на кнопку в виде молнии.
Найдите среди событий компонента, событие Click и сделайте двойной клик правой клавишей мыши напротив него.
У вас откроется или станет активной вкладка с кодом формы и курсор будет установлен на событие Click компонента, добавьте приведенный ниже код в это событие.
После запуска приложения нажав на кнопку "Источник", у вас появится под ней новая кнопка, если вы нажмете на только что созданную кнопку то вы получите под ней еще одну и так далее. Единственным недостатком такого кода является то, что компоненты уходят за границы формы и вам необходимо каждый раз ее расширять.
Для устранения данной проблемы перейдите в свойства формы и отыщите свойство AutoScroll и установите его значение в true. Данное свойство управляет автоматическим появлением полосы прокрутки, когда содержимое элемента управления больше его отображаемой области.
Запустите проект и поочередно нажмите несколько раз на кнопки, пока созданные кнопки не выйдут за отображаемую часть формы, после чего у вас появится полоса прокрутки позволяющая не изменяя размеров формы просматривать элементы формы.
По такому же примеру вы можете создавать любые компоненты, удачных вам экспериментов.
Запустите 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. Данное свойство управляет автоматическим появлением полосы прокрутки, когда содержимое элемента управления больше его отображаемой области.
Запустите проект и поочередно нажмите несколько раз на кнопки, пока созданные кнопки не выйдут за отображаемую часть формы, после чего у вас появится полоса прокрутки позволяющая не изменяя размеров формы просматривать элементы формы.
По такому же примеру вы можете создавать любые компоненты, удачных вам экспериментов.
Ссылка для скачивания примера: Яндекс.Диск
Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!