Динамическое создание объектов

  • docx
  • 27.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002967.docx

 Динамическое создание объектов

Чаще всего для размещения на форме кнопки, поля ввода или дру- гих управляющих элементов используется дизайнер среды Visual Studio: нужный элемент выделяется в панели элементов и размещается на фор- ме. Однако иногда создавать элементы нужно уже в процессе выполне- ния программы. Поскольку каждый элемент управления представляет собой отдельный класс, его помещение на форму программным спосо- бом включает несколько шагов:

 Создание экземпляра класса

 Привязка его к форме

 Настройка местоположения, размеров, текста и т. п.

 Например, чтобы создать кнопку, нужно выполнить следующий код (его следует разместить в обработчике сообщения Load или в каком- либо другом методе):

 

 Button b = new Button();

  

 Здесь объявляется переменная b, относящаяся к классу Button, как и в предыдущих лабораторных работах. Однако дальше идёт нечто но- вое: с помощью оператора new создаётся экземпляр класса Button и ссылка на него присваивается переменной b. При этом выполняется це- лый ряд дополнительных действий: выделяется память под объект, ини- циализируются все свойства и переменные.

  Далее нужно добавить объект на форму. Для этого служит свойство Parent, которое определяет родительский элемент, на котором будет размещена кнопка:

 

 b.Parent = this;

 

 Ключевое слово this относится к тому объекту, в котором разме- щён выполняемый в данный момент метод. Поскольку все методы в ла- бораторных работах размещаются в классе формы, то и this относится к этому конкретному экземпляру формы.

 Вместо формы кнопку можно поместить на другой контейнер. Например, если на форме есть элемент управления Panel, то можно по- местить кнопку на него следующим образом:

 

 b.Parent = panel1;


 

Чтобы задать положение и размеры кнопки нужно использовать свойства Location и Size:

 

b.Location = new Point(10, 20); b.Size = new Size(200, 100);

 

Обратите внимание, что Location и Size – это тоже объекты. Хотя внутри у Location содержатся координаты x и y, задающие левый верх- ний угол объекта, не получится поменять одну из координат, нужно ме- нять целиком весь объект Location. То же самое относится и к свойству Size.

На самом деле, каждый раз, когда на форму помещается новый элемент управления или вносятся какие-то изменения в свойства эле- ментов управления, Visual Studio генерирует специальный служебный код, который проделывает приведённые выше операции по созданию и настройке элементов управления. Попробуйте поместить на форму кнопку, изменить у неё какие-нибудь свойства, а затем найдите в обо- зревателе решений ветку формы Form1, разверните её и сделайте двой- ной щелчок по ветке Form1.Designer.cs. Откроется файл с текстом про- граммы на языке C#, которую среда создала автоматически. Менять этот код вручную крайне не рекомендуется! Однако можно его изучить, чтобы понять принципы создания элементов управления в ходе выпол- нения программы.