
- •Visual Basic .Net
- •Visual Basic .Net
- •Visual c#
- •314 Создание элементов управления с помощью .Net Framework Глава 7
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •2. В окне New Project выберите шаблон Windows Application, назовите новый про-
- •3. В меню Project выберите команду Add New Item — откроется одноименное диа-
- •4. В диалоговом окне Add New Item выберите Custom Control, назовите новый эле-
- •5. В окне Solution Explorer щелкните правой кнопкой элемент управления Pretty-
- •1. В окне редактора кода поместите в начало кода следующие операторы, импор-
- •Visual c#
- •Visual Basic .Net
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