Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
Dim oldText As String = Me.Text
'Получить текущий индекс SelectionStart
Dim selectionStart As Integer = Me.SelectionStart
'Форматировать строку, чтобы она удовлетворяла нашим потребностям
Dim newText As String = formatText_NNN_NN_NNNN(oldText, _
selectionStart)
'Если текст отличается
от исходного, обновить
'свойство .Text
If (oldText <> newText) Then
'Это приведет к повторному вхождению
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. код формы, демонстрирующий использование прозрачности '
Поделиться:
Популярные книги
Мир-о-творец
8. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Виконт. Книга 4. Колонист
Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.50
рейтинг книги
Титан империи
1. Титан Империи
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Запретный Мир
1. Запретный Мир
Фантастика:
фэнтези
героическая фантастика
8.94
рейтинг книги
Ты предал нашу семью
2. Предатели
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Цеховик. Книга 2. Движение к цели
2. Цеховик
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сила рода. Том 3
2. Претендент
Фантастика:
фэнтези
боевая фантастика
6.17
рейтинг книги
Проданная невеста
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Волк 7: Лихие 90-е
7. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Падение Твердыни
6. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Приручитель женщин-монстров. Том 9
9. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Ночь со зверем
3. Оборотни-медведи
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Я – Орк. Том 6
6. Я — Орк
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Совок-8
8. Совок
Фантастика:
попаданцы
альтернативная история
5.00