Литмир - Электронная Библиотека
Содержание  
A
A

  Return

 End If

 '----------------------------------------------------

 'Создать кнопку (еще не присоединенную к нашей форме)

 'установить ее местоположение, размеры и текст

 '----------------------------------------------------

 Const newButtonHeight As Integer = 15

 Dim newButton As System.Windows.Forms.Button

 newButton = New System.Windows.Forms.Button

 newButton.Width = 100

 newButton.Height = newButtonHeight

 newButton.Left = 2

 newButton.Top = (newButtonHeight + 2) * m_nextNewButtonIndex

 newButton.Text = "New Button " + _

  m_nextNewButtonIndex.ToString()

 '----------------------------------------------------

 'Присоединить обработчик к событию щелчка для данного

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

 '----------------------------------------------------

 AddHandler newButton.Click, _

  AddressOf Me.ClickHandlerForButtons

 '---------------------------------------------

 'Присоединить эту кнопку к форме. По существу,

 'это создаст кнопку на форме!

 '---------------------------------------------

 newButton.Parent = Me

 'Увеличить счетчик в соответствии с созданием очередной кнопки

 m_nextNewButtonIndex = m_nextNewButtonIndex + 1

End Sub

'-----------------------------------------------------

'Обработчик событий, который мы динамически подключаем

'к нашим новым кнопкам

'-----------------------------------------------------

Private Sub ClickHandlerForButtons(ByVal sender As Object, _

 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: Текущая точка вставки в тексте;

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

256
{"b":"947732","o":1}