Иллюстрированный самоучитель по VB.NET

Добавление новых событий


Добавить поддержку нового события в элемент ничуть не сложнее, чем включить обработчик события в класс (эта тема рассматривалась в главе 6). Предположим, каждый раз, когда пользователь вводит нечто отличное от положительного целого числа, элемент должен инициировать событие BadDataEntered. Новый код класса выделен жирным шрифтом:

Public Class PositivelntegerTextBox

Inherits System.Windows.Forms.TextBox

Public Event BadDataEntered(ByVal Sender As Object, _

ByVal e As EventArgs)

Protected Overrides Sub OnTextChanged(ByVal e As EventArgs)

MyBase.OnTextChanged(e)

If Not (IsNumeric(Me.Text)) Then Me.Text = String.Empty

RaiseEvent BadDataEntered(Me. New System.EventArgs()) Else

Dim temp As Decimal temp = CType(Me.Text,Decimal)

If temp = Math.Round(temp.0) <> 0 Then

Me.Text = String.Empty

RaiseEvent BadDataEntered(Me, New System.EventArgs())

End If

End If

End Sub

End Class

В элементах VB существует понятие события по умолчанию (default event). Событие по умолчанию срабатывает автоматически при двойном щелчке на экземпляре элемента в дизайнере форм. Событие по умолчанию задается при помощи специального атрибута. Атрибуты соответствуют экземплярам класса System.Attribute; атрибут Def aul tEvent входит в пространство имен System. ComponentModel. В программе атрибуты заключаются в угловые скобки, а при установке атрибута Defaul tEvent указывается имя события в кавычках. Чтобы назначить событие BadDataEntered событием по умолчанию для данного элемента, приведите начало класса к следующему виду:

Imports System.ComponentModel

<DefaultEvent("BadDataEntered")> Public Class _

PositivelntegerTextBox

Inherits System.Windows.Forms.TextBox



Содержание раздела