Чтение онлайн

ЖАНРЫ

Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:

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

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

m_backgroundBitmap = New Bitmap(bitmap_dx, bitmap_dy)

End If

'Делаем битовую карту белой

Dim gfx As System.Drawing.Graphics

gfx = System.Drawing.Graphics.FromImage(m_backgrourdBitmap)

Поделиться с друзьями: