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

на главную - закладки

Жанры

Программирование мобильных устройств на платформе .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. код формы, демонстрирующий использование прозрачности '
Поделиться:
Популярные книги

Личный аптекарь императора. Том 4

Карелин Сергей Витальевич
4. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора. Том 4

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Неучтенный элемент. Том 8

NikL
8. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 8

Черный Маг Императора 20

Герда Александр
20. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Черный Маг Императора 20

Л. Пантелеев — Л. Чуковская. Переписка (1929–1987)

Пантелеев Леонид
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Л. Пантелеев — Л. Чуковская. Переписка (1929–1987)

Ученик. Книга 4

Первухин Андрей Евгеньевич
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Ученик. Книга 4

Наследие Маозари 9

Панежин Евгений
9. Наследие Маозари
Фантастика:
попаданцы
постапокалипсис
рпг
сказочная фантастика
6.25
рейтинг книги
Наследие Маозари 9

Кодекс Охотника. Книга XIX

Винокуров Юрий
19. Кодекс Охотника
Фантастика:
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XIX

Тринадцатый IX

NikL
9. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
сказочная фантастика
5.00
рейтинг книги
Тринадцатый IX

Война

Валериев Игорь
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Война

Последний Паладин

Саваровский Роман
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин

Князь Андер Арес 3

Грехов Тимофей
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Князь Андер Арес 3

Справочник логопеда

Коллектив авторов
Научно-образовательная:
медицина
6.25
рейтинг книги
Справочник логопеда

Сирийский рубеж

Дорин Михаил
5. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сирийский рубеж