Программирование мобильных устройств на платформе .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. код формы, демонстрирующий использование прозрачности '
Поделиться:
Популярные книги
Наследие Маозари 2
2. Наследие Маозари
Фантастика:
попаданцы
рпг
аниме
5.00
рейтинг книги
Князь Целитель 2
2. Князь Целитель
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 9
9. Бастард Императора
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Вернувшийся: Новая жизнь. Том I
1. Вернувшийся
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Дитя прибоя
Дитя прибоя
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Отвергнутая невеста генерала драконов
5. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Наследник старого рода
1. Живой лёд
Фантастика:
фэнтези
8.19
рейтинг книги
Черный маг императора 3
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XXIX
29. Неудержимый
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Изгой Проклятого Клана. Том 5
5. Изгой
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Газлайтер. Том 4
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Первый среди равных. Книга XIII
13. Первый среди Равных
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Варяг
1. Варяг
Фантастика:
альтернативная история
9.10
рейтинг книги
Солнечный корт
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00