В этом упражнении вы создадите приложение с интерфейсом из нескольких документов, которое состоит из родительской формы и двух дочерних форм.
Откройте проект и добавьте родительскую форму
1. Откройте проект CalculateFlooringCosts в каталоге CalculateFlooringCostsMDI. Затем просмотрите код для форм расходов на ковровое покрытие и стоимость лиственных пород, чтобы понять, как они работают.
Добавьте форму в проект и установите для свойства IsMdiContainer этой формы значение True, чтобы идентифицировать ее как родительскую форму. Измените размер формы, чтобы она была достаточно большой, чтобы в ней можно было разместить несколько дочерних форм, и используйте страницу «Приложение» в конструкторе проектов, чтобы изменить форму запуска на новую форму.
Добавить меню «Файл» в родительскую форму
Добавьте элемент управления MenuStrip к родительской форме. Затем используйте конструктор меню, чтобы добавить меню «Файл» в родительскую форму. Это меню должно включать четыре элемента меню, которые отображают форму затрат на ковровое покрытие, отображают форму затрат на древесину, закрывают активную дочернюю форму и выходят из приложения. Дайте каждому пункту меню соответствующее имя, включите ключи доступа к меню и пунктам меню, а также вставьте разделительную полосу между пунктами Закрыть и Выход.
Добавить обработчик события для события Click каждого элемента в меню «Файл». Обработчики событий для элементов New Carpeting Costs и New Hardwood Costs должны создать новый экземпляр соответствующей формы, установить для родительской формы текущую форму и отобразить форму. Обработчик события для элемента Close должен закрывать активную дочернюю форму, если она есть. И обработчик события для элемента Exit должен выйти из приложения.
Измените кнопки «Выход» на формах «Расходы коврового покрытия» и «Расходы лиственных пород» на кнопки «Закрыть», а свойство StartPosition этих форм измените на WindowsDefaultLocation.
Протестируйте приложение, чтобы убедиться, что элементы в меню Файл работают должным образом.
Добавить меню «Окно» в родительскую форму
Добавление меню «Окно» справа от меню «Файл». Затем добавьте три пункта в это меню, которые позволят пользователю расположить формы в каскадном, вертикальном или горизонтальном макете.
Дайте каждому элементу в меню Window соответствующее имя, а затем добавьте обработчик событий для события Click каждого элемента, который соответствующим образом упорядочит дочерние формы.
Установите свойство MdiWindowListItem полосы меню, чтобы в меню «Окно» отображался список открытых дочерних форм.
Протестируйте приложение, чтобы убедиться, что элементы в меню Window работают должным образом.
Добавить панель инструментов в родительскую форму
Добавить элемент управления ToolStrip в родительскую форму. Затем добавьте две кнопки на эту панель инструментов с надписью «Затраты на ковровое покрытие» и «Затраты на лиственные породы». Обязательно присвойте этим кнопкам соответствующие имена.
Добавьте обработчик события для события Click каждой кнопки, который использует обработчик события Click для связанного меню для отображения формы.
Протестируйте приложение, чтобы убедиться, что кнопки панели инструментов работают.
Добавить строку состояния в родительскую форму
Добавить элемент управления StatusStrip в родительскую форму. Затем добавьте один элемент управления ToolStripStatusLabel в строку состояния.
Добавьте переменную уровня модуля в родительскую форму для хранения количества дочерних форм и присвойте этой переменной начальное значение 0. Добавьте код, чтобы увеличивать или уменьшать значение этой переменной каждый раз, когда новая форма открыт или закрыт.
Добавьте процедуру с именем DisplayFormCount, которая устанавливает для свойства Text элемента управления ToolStripStatusLabel значение «Число дочерних форм, отображаемых в данный момент:», с добавлением текущего счетчика форм. Затем добавьте код для вызова этой процедуры, когда форма загружается и каждый раз, когда изменяется число форм.
Testприложение, чтобы убедиться, что счетчик формы отображается правильно.
Это шаги 15 и 16. Я застрял на.
И это работает по большей части.После загрузки формы он показывает 0, затем добавление формы увеличит количество на 1. Проблема в том, что когда я иду, чтобы закрыть первое дочернее окно, оно не вычитается.После закрытия всех окон счет уменьшается на 1, а когда все окна закрыты, он все равно говорит, что счет равен 1.