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

на главную

Жанры

Программирование мобильных устройств на платформе .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
рейтинг книги
Виконт. Книга 4. Колонист

Титан империи

Артемов Александр Александрович
1. Титан Империи
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Титан империи

Запретный Мир

Каменистый Артем
1. Запретный Мир
Фантастика:
фэнтези
героическая фантастика
8.94
рейтинг книги
Запретный Мир

Ты предал нашу семью

Рей Полина
2. Предатели
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты предал нашу семью

Цеховик. Книга 2. Движение к цели

Ромов Дмитрий
2. Цеховик
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цеховик. Книга 2. Движение к цели

Сила рода. Том 3

Вяч Павел
2. Претендент
Фантастика:
фэнтези
боевая фантастика
6.17
рейтинг книги
Сила рода. Том 3

Проданная невеста

Wolf Lita
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Проданная невеста

Волк 7: Лихие 90-е

Киров Никита
7. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волк 7: Лихие 90-е

Падение Твердыни

Распопов Дмитрий Викторович
6. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Падение Твердыни

Приручитель женщин-монстров. Том 9

Дорничев Дмитрий
9. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 9

Ночь со зверем

Владимирова Анна
3. Оборотни-медведи
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Ночь со зверем

Я – Орк. Том 6

Лисицин Евгений
6. Я — Орк
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 6

Совок-8

Агарев Вадим
8. Совок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Совок-8