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

  'Это приведет к повторному вхождению

  Me.Text = newText

  'Обновить местоположение точки вставки

  Me.SelectionStart = selectionStart

 End If

 'Мы принудительно обеспечили соответствие введенного текста правильному

 'формату, поэтому, если длина строки согласуется с длиной номера

 'карточки социального страхования, то мы знаем что он имеет

 'формат ###-##-####.

 If (Me.Text.Length = SSNumberLength) Then

  'Да, мы имеем полный номер карточки социального страхования

  m_inputIsFullValidEntry = True

 Else

  'Нет, мы пока не получили полный номер карточки социального страхования

  m_inputIsFullValidEntry = False

 End If

 'Вызвать наш базовый класс и сообщить всем объектам, которых это может

 'интересовать, что текст изменился

 MyBase.OnTextChanged(e)

 'Заметьте, что сейчас мы покидаем наш код и хотим отключить

 'проверку повторных вхождений в него.

 m_in_OnChangeFunction = False

End Sub

Protected Overrides Sub OnKeyPress( _

 ByVal e As System.Windows.Forms.KeyPressEventArgs)

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

 'то просто игнорировать их, если они встречаются.

 Dim keyPressed As Char = e.KeyChar

 If (System.Char.IsLetter(keyPressed)) Then

  'Сообщить системе о том, что событие обработано

  e.Handled = True

  Return

 End If

 'Обработать нажатие клавиши обычным способом

 MyBase.OnKeyPress(e)

 End Sub

End Class

Листинг 13.4. Код формы для создания пользовательского элемента управления TextBox

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

'Переменная для хранения нашего нового элемента управления TextBox

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

Private m_filteredTextBox As SocialSecurityTextBox

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

'ОБРАБОТЧИК СОБЫТИЙ: Создать экземпляр нашего пользовательского элемента

' управления и поместить его в форму

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

Private Sub Button1_Click(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles Button1.Click

 'Создать, позиционировать и разместить элемент управления

 m_filteredTextBox = New SocialSecurityTextBox

 m_filteredTextBox.Bounds = _

  New System.Drawing.Rectangle(2, 2, 160, 20)

 'Подключить обработчик событий

 AddHandler m_filteredTextBox.TextChanged, _

  AddressOf Me.textBox_TextChanged

 'Задать родительский объект

 m_filteredTextBox.Parent = Me

 'Выделить элемент управления

 m_filteredTextBox.Focus()

 'Сделать данную кнопку недоступной, чтобы поверх данного объекта

 'не был создан второй объект

 SocialSecurityTextBox Button1.Enabled = False

End Sub

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

'ОБРАБОТЧИК СОБЫТИЙ: Этот обработчик подключается динамически при

' создании элемента управления

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

Private Sub textBox_TextChanged(ByVal sender As Object, _

 ByVal e As System.EventArgs)

 If (m_filteredTextBox.IsFullValidInput = True) Then

  label1.Text = "FULL SOCIAL SECURITY NUMBER!!!"

 Else

  Label1.Text = "Not full input yet..."

 End If

End Sub

Листинг 13.5. код формы, демонстрирующий использование прозрачности '         

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

'Размеры наших битовых образов и экранного изображения PictureBox

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

Const bitmap_dx As Integer = 200

Const bitmap_dy As Integer = 100

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

'Создает и прорисовывает изображение заднего плана

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

Private m_backgroundBitmap As System.Drawing.Bitmap

Sub CreateBackground()

 If (m_backgroundBitmap Is Nothing) Then

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