- •Псков ппи
- •Содержание
- •Введение
- •Лабораторная работа №1
- •Задание.
- •Краткая справка.
- •Краткая справка.
- •Рекомендации по выполнению задания
- •Лабораторная работа №2
- •Задание
- •Рекомендации по выполнению задания
- •Лабораторная работа №3
- •Задание
- •Краткая справка.
- •Рекомендации по выполнению задания
- •Лабораторная работа №4
- •Задание
- •Краткая справка.
- •Рекомендации по выполнению задания
- •Лабораторная работа №5
- •Задание
- •Краткая справка.
- •Рекомендации по выполнению задания
- •Лабораторная работа №6
- •Задание
- •Краткая справка.
- •Свойства управляющего элемента RadioButton
- •События управляющего элемента RadioButton
- •Свойства управляющего элемента CheckBox
- •Свойства управляющего элемента TextBox
- •События управляющего элемента TextBox
- •Рекомендации по выполнению задания
- •Лабораторная работа №7
- •Задание
- •Краткая справка.
- •Рекомендации по выполнению задания
- •Литература
- •Приложение Класс Form
- •Открытые конструкторы
- •Открытые свойства
- •Открытые методы
- •Открытые события
- •Защищенные свойства
- •Защищенные методы
- •Класс Graphics
- •Открытые свойства
- •Открытые методы
- •Защищенные методы
- •Антонов Игорь Вадимович Бруттан Юлия Викторовна с#. Программирование на языке высокого уровня
Рекомендации по выполнению задания
Пункт 1
Проектирование классов эллипса и прямой линии может быть выполнено аналогично проектированию класса прямоугольника.
Класс линии произвольной формы для хранения множества точек, задающих линию, может использовать динамический массив. Следует учитывать, что методу DrawCurve должен передаваться обычный массив точек, а не динамический массив. Для рисования кривой можно формировать на основе информации из динамического массива буферный массив, координаты точек которого будут учитывать текущее положение полос прокрутки.
Пункт 2
Для управления фигурами разных типов рекомендуется определить перечисление, содержащее идентификаторы этих фигур. Выбор пункта меню, соответствующего определённой фигуре, и состояние флага заливки должны фиксироваться в полях класса основной формы. Затем, при обработке щелчка левой кнопки мыши следует учитывать значение этих параметров и создавать одну из фигур, используя для выбора конструкцию switch–case.
Пункт 3
Для формы, содержащей рисунок, установить в true свойство DoubleBuffered. Для буферизации операций рисования добавить в класс формы, содержащей рисунок, поле типа BufferedGraphics. Это поле не должно инициализироваться в конструкторе класса, так как его инициализация требует наличия объекта Graphics, который должен создаваться лишь для уже существующих и инициализированных окон. Решением проблемы является использование для инициализации этого поля обработчика события Load формы. Это событие генерируется уже после создания формы, но перед её первым отображением. Для освобождения ресурсов, занятых этим объектом, может использоваться обработчик события FormClosed. При создании объекта BufferedGraphics можно заполнить область окна цветом фона. Обработчик события Paint после перехода к буферизованному выводу должен заполнять фон рабочей области рисунка и рисовать фигуры, но не в окне, а в буфере, а затем вызовом метода Render переносить сформированный рисунок в окно.
Примеры использования класса BufferedGraphics можно найти в справочной системе Visual Studio. В разделе «Index» перейдите к справке по double buffering и там по ссылке «Manually Render Buffered Graphics».
Исключение дефектов изображения, возникающих в процессе рисования, потребует переработки алгоритмов обработки событий, приходящих от мыши. При перемещении контура фигуры вместо стирания контура в предыдущем положении теперь следует вызывать метод Render, который будет восстанавливать исходное состояние рисунка, и после этого обновлять контур.
Литература
К. Ватсон и др. C#.. – СПб.:Питер, 2006.
Д.С. Платт. Знакомство с Microsoft .NET / Пер. с англ. –М.: Издательско-торговый дом «Русская редакция», 2001.
Ч. Петцольд. Программирование для Microsoft Windows на C#. В 2-х томах / Пер. с англ. –М.: Издательско-торговый дом «Русская редакция», 2002.
C#. Программирование на языке высокого уровня / Т.А.Павловская. – СПб.:Питер, 2007.
Приложение Класс Form
Представляет окно или диалоговое окно, которое составляет пользовательский интерфейс приложения.
Базовый класс: ContainerControl
Пространство имен: System.Windows.Forms
Form является представлением любого окна, отображаемого в приложении. Класс Form используется для создания стандартных окон, окон инструментов, не обрамленных и перемещаемых окон. Класс Form также используется для создания модальных окон, например, диалогового окна. Особым видом формы является форма многодокументного интерфейса MDI (multiple document interface), содержащая другие формы, называемые дочерними MDI-формами. MDI-форма создается с помощью установки свойству IsMdiContainer значения true. Дочерние MDI-формы создаются с помощью установки свойства MdiParent для родительской MDI-формы, которая будет содержать дочернюю форму.
С помощью свойств, доступных в классе Form, имеется возможность определить внешний вид, размер, цвет и компоненты управления создаваемого окна или диалогового окна. Свойство Text позволяет задавать заголовок окна в строке заголовка. С помощью свойств Size и DesktopLocation определяются размер и положение окна при его отображении. Имеется возможность использовать свойство цвета ForeColor для изменения назначенного по умолчанию цвета фона всех элементов управления, помещенных в форму. Свойства FormBorderStyle, MinimizeBox и MaximizeBox позволяют управлять возможностью минимизации, максимизации или изменения размера формы во время выполнения.
Кроме свойств для управления формой используются методы класса. Например, метод ShowDialog используется для отображения формы как модального диалогового окна. Имеет возможность использовать метод SetDesktopLocation для размещения формы на рабочем столе.
События класса Form позволяют отвечать на действия, выполненные с формой. Имеется возможность использовать событие Activated для выполнения таких операций, как обновление данных, отображаемых в элементах управления формы при ее активации.
Форма используется в качестве начального класса приложения с помощью помещения в класс метода, вызванного Main В методе Main необходимо добавить код для создания и отображения формы. Необходимо также добавить атрибут [STAThread] для метода Main для запуска формы. Если начальная форма закрыта, приложение также закрыто.
