Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 12. Рисование.doc
Скачиваний:
43
Добавлен:
02.04.2015
Размер:
324.1 Кб
Скачать

Visual Basic .Net

Dim myPath As New Drawing2D. GraphicsPath()

myPath. StartFiguref)

Здесь должен быть код, добавляющий элементы контура.

[TiyPath.CloseFigure(')

Visual c#

GraphicsPath myPath = new Drawing2D.GraphicsPath();

myPath. StartFigure();

Здесь должен быть код, добавляющий элементы контура.

myPath. CloseFigureO;

Если вызвать метод StartFigure два раза подряд, не вызвав между ними метод Close-

Figure, то фигура, созданная первым вызовом StartFigure, останется незамкнутой.

Занятие 1 Применение G01+ 3 \ д

Примечание При отображении в период выполнения любая незамкнутая фигура ав-

томатически замыкается добавлением прямой, соединяющей первую и последнюю

точку контура этой фигуры.

В таблице 7-7 описаны методы объекта GraphicsPath, позволяющие добавлять

новые элементы контура фигуры.

Table 7-7. Методы для добавления элементов контура

Имя Что добавляет

AddArc Дугу

AddBezier Кривую Безье

AddBeziers Набор кривых Безье

AddCurve Кривую, заданную массивом точек

AddLine Прямую

AddLines Набор соединенных прямых

> Как нарисовать сложную фигуру

1. Получите ссылку на объект Graphics, связанный с областью рисования, в кото-

рой нужно нарисовать фигуру.

2. Создайте новый экземпляр класса GraphicsPath.

3. Добавьте к нему фигуры при помощи методов класса GraphicsPath.

4. Вызовите метод Graphics. DrawPath, чтобы нарисовать контур, или Graphics. Fill-

Path, чтобы нарисовать закрашенную фигуру, заданную объектом GraphicsPath.

5. Освободите объект Graphics.

Резюме

Graphics ключевой объект для рисования графики. Он представляет поверх-

ность области рисования и предоставляет методы для рисования на ней.

• Объекты Pen, Brush и Color управляют отображением графики в области рисова-

ния. Объекты Реп рисуют линии, Brush заливают фигуры, а объекты Colors

задают цвета. Применение классов SystemPens, SystemBrushes и System Colors по-

зволяю согласовать внешний вид компонента и приложения в целом,

• Методы объекта Graphics отображают простые фигуры и текст.

• Сложные фигуры можно определить средствами объекта GraphicsPath. Он под-

держивает ряд методов, которые упрощают рисование сложных фигур. Готовый

объект GraphicsPath можно визуализировать с помощью объекта Graphics.

320 Создание элементов управления с помощью .NET Framework Глава 7

Занятие 2. Создание элементов управления

В основе программирования с применением Windows Forms лежит использование

элементов управления. Они инкапсулируют отдельные функции приложения и яв-

ляются их графическим представлением для пользователя. .NET Framework предо-

ставляет в распоряжение разработчика ряд инструментов и методов для создания

собственных элементов управления. На этом занятии вы познакомитесь с различны-

ми типами нестандартных элементов управления и инструментами для их создания.

Изучив материал этого занятия, вы сможете:

s описать _€r銈・__различные типы нестандартных элементов управления;

J создавать все типы нестандартных элементов управления;

^ добавлять к элементам управления свойства, методы и события;

s создавать производные элементы управления;

s создавать составные элементы управления;

s создавать формируемые элементы управления.

Продолжительность занятия - около 45 минут.

Элементы управления .NET Framework — это специализированные классы, ко-

торые содержат код, формирующий их графический интерфейс. Существует не-

сколько источников элементов управления, применяемых в приложениях. Во-пер-

вых, это стандартные элементы управления Visual Studio .NET, разработанные

Microsoft. Они обеспечивают широкие возможности и позволяют разрабатывать

клиентские приложения с богатой функциональностью. Во-вторых, в приложениях

допустимо применять элементы управления от сторонних разработчиков, а также

существующие элементы управления ActiveX. Элементы управления от сторонних

разработчиков поддерживают возможности, отсутствующие у стандартных компо-

нентов из .NET Framework. Наконец, если функции, необходимые вашему прило-

жению, не реализованы ни в стандартных элементах управления .NET Framework,

ни в элементах управления сторонних разработчиков, разрешается создавать соб-

ственные элементы управления.

Принципы создания элементов управления

Все элементы управления .NET Framework являются прямыми или косвенными по-

томками класса Control и наследуют от него базовый набор низкоуровневой функ-

циональности, необходимой всем элементам управления. Например, Control предо-

ставляет код для обработки данных, введенных пользователем с помощью клавиа-

туры и мыши, а также код, взаимодействующий с ОС. Кроме того, классы элемен-

тов управления получают от своего предка набор свойств, методов и событий, об-

щих для всех элементов управления. Однако базовый класс не передает своим по-

томкам ни специфических функций, ни кода, формирующего интерфейс элемента

управления.

Основных подходов к созданию элементов управления три:

• наследование от существующих элементов управления;

• объединение стандартных элементов управления в группы;

• написание нестандартных элементов управления ≪с нуля≫.

Занятие 2 Создание элементов управления 321

Наследование от существующих элементов управления

Проще всего создать новый элемент управления, объявив его на основе существу-

ющего. Созданный таким образом элемент управления не только сохраняет всю

функциональность базового компонента, но и позволяет дополнить ее новыми воз-

можностями.

Помимо функциональности, производный элемент управления унаследует от

своего предка вид интерфейса. Например, элемент управления, производный от

Button, внешне не отличается от обычной кнопки. Это освобождает от сощания

интерфейса для производных элементов управления, но при необходимости это

можно сделать.

Большинство элементов управления Windows Forms, если они не определены с

ключевым словом Notfnheritable (sealed), могут служить базовыми классами для но-

вых элементов управления. Например, это позволяет создать новый элемент управ-

ления TextBox с встроенным кодом для проверки значения поля или PictureBox.

поддерживающий установку пользователем фильтров для отображаемых в нем изоб-

ражений. Наследование также позволяет создавать элементы управления, функци-

онально идентичные базовому элементу управления, но отличающиеся по внешне-

му виду. Пример — нестандартная кнопка, которая отличается от традиционной

прямоугольной кнопки круглой формой.

Объявление новых элементов управления при помощи наследования считается

простейшим способом их создания и требует минимальных затрат времени. Этот

подход оптимален, если требуется передать большинство или все возможности су-

ществующего элемента управления Windows Forms новому элементу управления,

добавив лишь несколько нестандартных функций. Данный способ удобен и в тех

случаях, когда требуется изменить облик элемента управления, сохранив его функ-

циональность. Если же требуется создать элемент управления с кардинально иной

функциональностью, не следует объявлять его на основе существующего; к этом

случае применяются способы, описанные в следующих разделах.

Наследование от класса UserControl

Иногда функциональности одного элемента управления недостаточно для решения

поставленных задач. Предположим, вам требуется элемент управления, поддержи-

вающий связывание с источником данных и отображающий имя, фамилию и но-

мер телефона в элементах управления TextBox. Можно добавить к форме соответ-

ствующий код, но рациональнее создать новый элемент управления, содержащий

несколько текстовых полей. Это особенно удобно, когда подобные возможности

требуются нескольким приложениям. Элементы управления, образованные объе-

диненными в группу стандартными элементами управления Windows Forms, назы-

ваются пользовательскими или составными.

Составные элементы управления объявляют на основе класса UserControl. пре-

доставляющего базовую функциональность, которую можно расширить путем до-

бавления свойств, методов, событий и других элементов управления. Дизайнер со-

ставных элементов управления позволяет размещать на их поверхности стандарт-

ные элементы управления Windows Forms и добавлять код, реализующий специфи-

ческие возможности. Таким образом, пользователь может создавать новые элемен-

ты управления, объединяя стандартные элементы управления Windows Forms в ло-

гические группы.

322 Создание элементов управления с помощью .NET Framework Глава 7

При разработке графического интерфейса пользовательских элементов управ-

ления доступны не все возможности, но разработчику, как правило, достаточно

лишь настроить и правильно расположить стандартные элементы управления.

Создание пользовательского элемента управления не всегда простая задача -

это зависит от требований к функциональности нового компонента. Способ, опи-

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

кциональность стандартных элементов управления и нестандартные возможности.

Наследование от класса Control

Если требуется более сложный интерфейс или возможности, которые не удается

реализовать с применением составных и производных элементов управления, об-

ращаются к созданию формируемых элементов управления. Формируемые элемен-

ты являются прямыми потомками Control- базового класса всех элементов управ-

ления. Класс Control передает ≪по наследству* большой объем функциональности,

общей для всех элементов управления, например поддержку взаимодействия с мы-

шью и общие события (например, Click), а также облегчающие работу с элементами

управления свойства, такие, как Font, ForeColor, BackColor, Visible и т.д.

Тем не менее класс Control не предоставляет производным от него элементам

управления никаких специальных возможностей. Всю логику, необходимую для

решения специфичных задач данного элемента управления, должен реализовать

разработчик. Хотя класс Control предоставляет значительную часть свойств, опре-

деляющих облик интерфейса, разработчику придется самостоятельно написать весь

код графического интерфейса элемента управления.

Создание формируемых элементов управления требует больше всего времени и

усилий от программиста, поскольку на его плечи ложится не только реализация не-

стандартных возможностей данного элемента управления, но и создание его гра-

фического представления, что может отнять массу времени. Формировать элемен-

ты управления самостоятельно следует, только если требуется сложная форма либо

функциональность, которую не предоставляет ни один другой тип элементов упра-

вления.

Добавление членов к элементам управления

Процедура добавления свойств, методов, полей и событий к элементам управления

не отличается от добавления членов к обычному классу. Члены классов элементов

управления разрешается объявлять с любым подходящим уровнем доступа, чтобы

сделать их доступными форме, на которой размещен элемент управления.

Открытые свойства, добавленные к элементам управления в период разработки,

автоматически отображаются в окне Properties, где их может отредактировать и на-

строить любой пользователь. Если вы не хотите, чтобы свойство отображалось в

окне Properties, добавьте к его объявлению атрибут Browsable и установите его в false.

Вот как это делается:

Visual Basic .NET

<System.ComponentModel.Browsable(False)>

Public Property StockNumber() As Integer

Реализация свойства опущена.

End Property

Занятие 2 Создание элементов управления