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

Visual c#

[ System. ComponentModel. Browsable( false)]

public int StockNumber

{

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

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

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

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

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

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

созданный таким образом, сохранит внешний вид и поведение своего предка. Ниже

показан пример создания элемента управления, производного от Button;

Visual Basic .Net

Public Class myButton

Inherits System. Windows. Forms. Button

Остальной код опущен.

End Class

Visual c#

public class myButton : System. Windows. Forms. Button

{

// Остальной код опущен.

!

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

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

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

тов управления Windows Forms. Для этого к производным элементам управления

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

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

пользователь сможет вводить только числа. Для этого необходимо переопределить

метод OnKeyPress следующим образом:

Visual Basic .Net

Public Class NumberBox

Inherits System. Windows. Forms. TextBox

Protected Overrides Sub CmKeyPress(ByVal e As KeyPressEventArgs)

If Char.IsNumber(e.KeyChar) = False Then

e. Handled = True

End If

End Sub

End Class

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

Visual c#

public class NumberBox : System.Windows.Forms.TextBox

protected override void QnKeyPress(KeyPressEventArgs e)

if (char.IsNumber(e.KeyChar) =- false)

e.Handled = true;

\

Модификация внешнего вида существующих элементов управления

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

стандартный внешний вид. Чтобы изменить стиль оформления существующего эле-

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

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

щим образом его свойство Region в методе OnPaint. Класс Region, подобно Graphics-

Path, описывает область экрана заданной формы, его получают из класса Graphics-

Path. Так, можно сгенерировать класс GraphicsPath, представляющий форму вашего

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

ветствующее свойство элемента управления. Этот прием иллюстрируется на при-

мере создания кнопки в форме текста:

Visual Basic .Net

Public Class WowButton

Inherits System.Windows,Forms.Buttor

Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)

Dim rnyPath As New Drawing2D.GraphicsPath()

1 Создать объект GraphicsPath и установить свойства FontFamily

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

контуры строки символов размером 72 пункта.

myPatn.AddString("Wow!", Font.FontFamily, Font.Style, 72, New _

PointFCO, 0). StringFormat.GenericDefault)

Создать на основе GraphicsPath новый объект Region.

Dim myRegion As New Region(myPath)

Поместить новый объект Region в одноименное свойство

элемента управления,

Me.Region = myRegion

End Sub

End Class