Программирование мобильных устройств на платформе .NET Compact Framework (Салмре) - страница 575

> ByVal e As System.EventArgs)

> Dim buttonCausingEvent As Button = _

>  CType(sender, System.Windows.Forms.Button)


> 'Вызвать окно сообщений, извещающее о том,

> 'что мы получили событие

> MsgBox("Click event from:" + vbCrLf + buttonCausingEvent.Text)

>End Sub

Листинг 13.3. Фильтрующее текстовое окно, принимающее текст в формате ###-##-####

>Option Strict On

>Imports System

>'----------------------------------------------------------------------------

>'Этот класс является элементом управления, производным от элемента управления

>'TextBox.

>'Он наследует все графические свойства TextBox, но добавляет фильтрацию

>'содержимого текстового окна, тем самым гарантируя,

>'что вводимый текст будет соответствовать формату:

>'###-##-####.

>'Этот формат соответствует формату номеров карточек социального страхования,

>'используемых в США.

>'-----------------------------------------------------------------------------

>Public Class SocialSecurityTextBox

>Inherits System.Windows.Forms.TextBox

>Private m_inputIsFullValidEntry As Boolean

>'------------------------------------------------

>'Указывает, получен ли

>'номер карточки социального страхования полностью

>'------------------------------------------------

>Public ReadOnly Property IsFullValidInput() As Boolean

> Get

>  Return m_inputIsFullValidEntry

> End Get

>End Property

>'Объект StringBuilder, которую мы будем часто использовать

>Private m_sb As System.Text.StringBuilder

>'Максимальная длина обрабатываемых строк

>Const SSNumberLength As Integer = 11


>'-----------

>'Конструктор

>'-----------

>Public Sub New()

> 'Распределить память для нашего объекта StringBuilder и предоставить

> 'место для нескольких дополнительных рабочих символов по умолчанию

> m_sb = New System.Text.StringBuilder(SSNumberLength + 5)

> m_inputIsFullValidEntry = False

>End Sub


>'---------------------------------------------------------------------

>'Форматировать поступающий текст с целью установления его соответствия

>'нужному формату:

>'

>' Формат номера карточки социального страхования: ###-##-####

>' символы: 01234567890

>'

>' [in] inString          : Текст, который мы хотим форматировать

>' [in/out] selectionStart: Текущая точка вставки в тексте;

>'  она будет смещаться в связи с удалением

>'                           и добавлением нами символов

>'----------------------------------------------------------------------

>Private Function formatText_NNN_NN_NNNN(ByVal inString As _

> String, ByRef selectionStart As Integer) As String

> Const firstDashIndex As Integer = 3

> Const secondDashIndex As Integer = 6


> 'Удалить старые данные и поместить входную строку

> 'в объект StringBuilder, чтобы мы могли с ней работать.