Отчет МДК 01.01 ПР1_Пряхин. Колледж телекоммуникаций ордена Трудового Красного Знамени федерального государственного бюджетного образовательного учреждения высшего образования Московский технический университет связи и информатики
Скачать 246.28 Kb.
|
ОТЧЕТ Практическое занятие № 1. Анализ предметной области по дисциплине «МДК. 02.01 Технология разработки программного обеспечения»
Москва 2022 Лабораторная работа 1. Введение в разработку форм Цель работы Изучение методов построения форм Windows и получение навыков по настройке форм, созданию непрямоугольных и наследуемых (производных) форм. Упражнение 1. Настройка прямоугольной формы Windows Формы Windows — это основной компонент пользовательского интерфейса. Формы предоставляют контейнер, который содержит элементы управления, меню и позволяет отображать приложение в уже привычной и единообразной модели. Формы могут реагировать на события мыши и клавиатуры, поступающие от пользователя, и выводить на экран данные для пользователя с помощью элементов управления, которые содержатся в форме. Формы Windows содержат множество свойств, позволяющих настраивать их внешний вид и поведение. Просматривать и изменять эти свойства можно в окне Properties конструктора при разработке, а также программно во время выполнения приложения. В следующей таблице перечислены некоторые свойства форм Windows, отвечающие за внешний вид и поведение приложения:
Создание нового проекта Откройте Visual Studio и создайте новый проект Windows Forms. Проект откроется с формой по умолчанию с именем Form1 в конструкторе. Выберите форму в конструкторе. Свойства формы отображаются в окне Properties. В окне Properties задайте свойствам значения, как указано ниже:
Перетащите три кнопки из Toolbox в форму и разместите их так, как вам будет удобно. Поочередно выберите каждую кнопку и в окне Properties задайте свойству кнопок Text значения Border Style, Resize и Opacity. Для кнопки Border Style задайте свойство Anchor - Top, Left. Реализация обработчиков событий В конструкторе дважды щелкните кнопку Border Style, чтобы открыть окно с кодом обработчика события Buttonl Click. Добавьте в этот метод следующую строку кода: this.FormBorderStyle = FormBorderStyle.Sizable; Возвратитесь в окно конструктора, дважды щелкните кнопку Resize и добавьте следующую строку: this.Size = new Size(300, 500); Возвратитесь в окно конструктора, дважды щелкните кнопку Opacity и добавьте следующую строку: this.Opacity = 1; Запуск готового решения Для построения решения выберите меню Build (Построение), далее команду Build Solution (Построить решение). При наличии ошибок исправьте их и снова постройте решение. В дальнейшем при необходимости выбора последовательности действий очередность команд будет описываться, например, так: Build | Build Solution. Нажмите Ctrl + F5 или выберите Debug (Отладка) | Start Without Debugging (Запуск без отладки), чтобы запустить приложение. Щелкайте каждую кнопку и наблюдайте, как изменяется вид формы. Измените поочередно расположение левой и верхней границ формы и сравните поведение кнопок внутри формы. Обратите внимание, что расстояние до этих границ от кнопки Border Style остается постоянным. Почему? Упражнение 2. Создание непрямоугольной формы Windows В этом упражнении вы создадите треугольную форму Windows. Откройте Visual Studio и создайте новый проект Windows Forms. Проект откроется с формой по умолчанию с именем Form1 в конструкторе. В окне Properties задайте свойству FormBorderStyle значение None, а свойству BackColor значение Red. В этом случае форму легче будет увидеть при тестировании приложения. Перетащите кнопку из Toolbox в левый верхний угол формы. Задайте свойству Text кнопки значение Close Form. Дважды щелкните кнопку Close Form и добавьте в обработчик события Button1 Click следующий код: this.Close(); В конструкторе дважды щелкните форму, чтобы открыть обработчик события Form1 Load. Добавьте в этот метод следующий код (он задает области формы треугольную форму указанием многоугольника с тремя углами): System.Drawing.Drawing2D.GraphicsPath myPath = new System.Drawing.Drawing2D.GraphicsPath(); myPath.AddPolygon(new Point[] { new Point(0, 0), new Point(0, this.Height), new Point(this.Width, 0) }); Region myRegion = new Region(myPath); this.Region = myRegion; Постройте и запустите приложение. Появится треугольная форма. Упражнение 3. Создание наследуемой формы Если у вас имеется уже готовая форма, которую вы собираетесь использовать в нескольких приложениях, удобно создать наследуемую (производную) форму. В этом упражнении вы создадите новую форму и унаследуете ее от существующей базовой формы, а затем измените производную форму, настроив ее для конкретной работы. Откройте проект из предыдущего упражнения. Базовой формой для создания производной будет треугольная форма. Для кнопки Close Form задайте свойство Modifiers как protected. Добавьте производную форму: меню Project (Проект) | Add Windows Form...( Добавить форму Windows), в окне Categories (Категории) укажите Windows Form, в окне Templates (Шаблоны) выберите Inherited Form (Наследуемая форма). В окне Add New Item в поле Name укажите название формы: nForm.cs и нажмите Add для добавления формы. В появившемся окне Inheritance Picker, в котором отображаются все формы текущего проекта, выберите базовую форму Form1 и нажмите OK. Постройте проект. Откройте форму nForm в режиме конструктора. Проверьте, что она имеет треугольную форму и свойства базовой формы и элемента управления наследованы. Настройте свойства производной формы: для кнопки: свойство Text - Hello!!! свойство BackColor - Brown для формы: свойство BackColor - Blue Постройте проект. Задайте производную форму в качестве стартовой, указав в функции Main следующий код: Application.Run(new nForm()); Постройте и запустите приложение. Должна открыться производная форма со своими свойствами. Проверьте, наследуется ли закрытие формы кнопкой. Упражнение 4. Создание MDI-приложения В этом упражнении Вы создадите MDI-приложение с родительской формой, загружающей и организующей дочерние формы. Также Вы познакомитесь с элементом управления MenuStrip, который позволяет создать меню формы. Создание нового проекта с базовой формой Создайте новый проект Windows Forms, укажите имя MdiApplication. Переименуйте файл Form1.cs на ParentForm.cs. Для формы задайте следующие свойства:
Проверьте, что произошли изменения в функции Main так, чтобы форма ParentForm стала стартовой. Откройте файл ParentForm.cs в режиме конструктора. Для свойства формы IsMdiContainer задайте значение True. Таким способом эта форма будет определена как родительская форма MDI. Создание меню для работы с формами Создайте пункт меню File: Откройте ПИ Toolbox, добавьте на форму ЭУ MenuStrip и задайте для его свойства Name значение MdiMenu. Выделите меню в верхней части формы и задайте имя первого пункта меню &File. Для свойства Name пункта меню File задайте значение FileMenuItem. Раскройте меню File. Выделите элемент, появившейся под элементом File, и задайте его как &New. Для свойства Name пункта меню New задайте значение NewMenuItem. Выделите элемент, появившийся под элементом New, и задайте его как &Exit. Для свойства Name пункта меню Exit задайте значение ExitMenuItem. Дважды кликните левой кнопкой мыши по пункту меню Exit для создания обработчика события Click. В обработчик события Click для пункта меню Exit добавьте следующий код: this.Close(); Создайте пункт меню Window: Переключитесь в режим конструктора. Выделите второй пункт меню справа от File и задайте его значением &Window. Для свойства Name пункта меню Window задайте значение WindowMenuItem. Раскройте меню Window. Выделите элемент, появившейся под элементом Window, и задайте для его свойства Text значение &Cascade. Для свойства Name пункта меню Cascade задайте значение WindowCascadeMenuItem. Выделите элемент, появившийся под элементом Cascade, и задайте для его свойства Text значение &Tile. Для свойства Name пункта меню Tile задайте значение WindowTileMenuItem. Дважды кликните левой кнопкой мыши по пункту меню Cascade для создания обработчика события Click: this.LayoutMdi (System.Windows.Forms.MdiLayout.Cascade); Вернитесь в режим конструктора и дважды кликните левой кнопкой мыши по пункту меню Tile. В обработчик события Click для пункта меню Tile добавьте следующий код: this.LayoutMdi(System.Windows.Forms.MdiLayout.TileHorizontal); Реализуйте список открытых окон в меню Window: a. В конструкторе выберите компонент Mdimenu. Укажите в свойстве MdiWindowListItem имя пункта, созданного для этого - WindowMenuItem. Создание дочерней формы Создайте дочернюю форму: Выберите пункт меню Project | Add Windows Form. Задайте имя формы ChildForm.cs. Для свойства Text формы задайте значение Child Form. На ПИ Toolbox дважды кликните левой кнопкой мыши по ЭУ RichTextBox и задайте для его свойства Name значение ChildTextBox. Для свойства Dock ЭУ RichTextBox задайте значение Fill. Удалите существующий текст (если он есть) для свойства Text ЭУ RichTextBox и оставьте его пустым. На ПИ Toolbox дважды кликните левой кнопкой мыши по ЭУ MenuStrip. Для свойства Name ЭУ MenuStrip задайте значение ChildWindowMenu. Выделите меню в верхней части формы и наберите текст F&ormat. Для свойства Name пункта меню Format задайте значение FormatMenuItem, для свойства MergeAction установите значение Insert, а свойству Mergeindex - 1. В этом случае меню Format будет располагаться после File при объединении базового и дочерних меню. Выделите элемент, появившийся под элементом Format, и наберите текст &Toggle Foreground. Для свойства Name пункта меню Toggle Foreground задайте значение ToggleMenuItem. Дважды кликните левой кнопкой мыши по пункту меню Toggle Foreground и добавьте следующий код в обработчик события Click: if (ToggleMenuItem.Checked) { ToggleMenuItem.Checked = false; ChildTextBox.ForeColor = System.Drawing.Color.Black; } else { ToggleMenuItem.Checked = true; ChildTextBox.ForeColor = System.Drawing.Color.Blue; } Отображение дочерней формы Отобразите дочернюю форму в родительской форме: Откройте ParentForm.cs в режиме конструктора. Дважды кликните левой кнопкой мыши по кнопке New в меню File для создания обработчика события Click. Добавьте следующий код для обработчика события Click для пункта меню New: ChildForm newChild = new ChildForm(); newChild.MdiParent = this; newChild.Show(); Работа с приложением Проверьте работу приложения: Постройте и запустите приложение. Когда появится родительская форма, выберите пункт меню File | New. В родительском окне появится новая дочерняя форма. Обратите внимание на то, дочернее меню сливается с родительским и пункты меню упорядочиваются в соответствие со свойством MergeIndex, установленным ранее. Наберите какой-нибудь текст в дочернем окне и воспользуйтесь пунктом меню Format для изменения цвета шрифта текста. Откройте еще несколько дочерних окон. Выберите пункт меню Window | Tile. Обратите внимание на то, что дочерние окна выстраиваются в упорядоченном порядке. Закройте все дочерние окна. Обратите внимание на то, что, когда закроется последнее дочернее окно, меню родительской формы изменится, и оттуда исчезнет пункт Format. Для закрытия приложения выберите пункт меню File | Exit. Обратите внимание, что заголовок у дочерних окон одинаковый. При создании нескольких документов, например в Microsoft Word, они называются Документ^ где N — номер документа. Реализуйте эту возможность: Откройте код родительской формы и в классе ParentForm объявите переменную openDocuments: private int openDocuments = 0; К свойству Text дочерней формы добавьте счетчик числа открываемых документов (в коде обработчика события Click для пункта меню New): newChild.Text = newChild.Text+" "+ ++openDocuments; Запустите приложение. Теперь заголовки новых документов содержат порядковый номер. Дополнительное упражнение Для углубления знаний о добавлении и настройке форм Windows выполните следующие задания. Задание 1. Создайте пользовательскую форму, которая во время выполнения будет иметь овальное очертание. Данная форма должна содержать функциональность, дающую возможность пользователю закрывать ее во время выполнения. Рекомендация: при разработке формы в виде эллипса используйте следующий код: // Добавление эллипса, вписанного в прямоугольную форму // заданной ширины и высоты myPath.AddEllipse(0, 0, this.Width, this.Height); Задание 2. Создайте приложение с двумя формами и установите вторую форму как стартовую. Сделайте так, чтобы при запуске стартовая форма разворачивалась до максимальных размеров и содержала функциональность, дающую возможность пользователю открыть первую форму, отображающуюся в виде ромба зеленого цвета с кнопкой (в центре ромба) закрытия формы с надписью GREENPEACE. |