Слайд 2Введение
Довольно часто возникают такие ситуации, когда банально неудобно сидеть и прописывать множество
однотипных объектов. Иной раз их проще создать динамически – то есть описать полностью внутри кода без использования конструктора.
Отличным примером программы, для которой подойдет данный способ, являются крестики-нолики. У нас девять однотипных объектов, при нажатии на которые у нас появляется либо крестик, либо нолик соответственно.
Слайд 3Динамическое создание объекта
Динамически можно добавить абсолютно любой объект. Просто выберите тот, который
вам нужен, и пропишете его добавление в самом начале кода! Всегда используйте сначала ключевое слово public. Обратите внимание, вы можете добавить как один объект, так и целый массив объектов!
Слайд 4Динамическое создание объекта
На предыдущем слайде вы просто сказали, что у вас будет
такой объект, но не создали. Создание объекта всегда помечается словом new и использованием конструктора. Иначе говоря, создание объекта выглядит следующим образом:
Для одного объекта
Для массива объектов (создание производится строго в цикле!!!):
Слайд 5Динамическое создание объектов
Дальше вы можете менять свойства так, как вам то будет
нужно. После того, как вы сделали все, что вам нужно, вы должны поместить объект на форму!!! Это делается с использованием конструкции следующего вида:
this.Controls.Add(объект);
Например, добавление на форму одного объекта:
Массива объектов (все еще в цикле!!!):
Слайд 6События
Событие – это некоторая функция или процедуры, которая вызывается при каких-то условиях.
Конструкция для событий выглядит следующим образом:
public тип название_события(object sender, аргумент)
Аргумент может различаться в зависимости от того, для какого объекта и какое событие мы создаем. Например, мы создаем событие, которые будет вызывать по клику, для кнопки. Оно будет выглядеть следующим образом:
Слайд 7События
Просто создать событие – недостаточно. Его нужно связать с нашим объектом. Связь
осуществляется также, как и изменение свойств объектов, т.к. через точку. Заметим, что каждая такая связь уникальна и она отличается от объекта к объекту и от события к событию. Например, связь для кнопки для события «клик» будет выглядеть следующим образом:
Слайд 8Задача
Реализовать заполнение полей в игре «крестики-нолики».
Слайд 9Принцип
Все объекты будут задаваться динамически. Первыми ходят крестики. Динамически нужно будет создать
девять кнопок и девять пустых изображений под ними. На эти пустые изображения будут помещаться либо крестик, либо нолик в зависимости от хода.
Кнопки и изображения будут содержаться в двумерном массиве, где индексы будут отвечать за строки и столбцы соответственно.