Вход/Регистрация
Программирование мобильных устройств на платформе .NET Compact Framework
вернуться

Салмре Иво

Шрифт:

'Этот класс является элементом управления, производным от элемента управления

'TextBox.

'Он наследует все графические свойства TextBox, но добавляет фильтрацию

'содержимого текстового окна, тем самым гарантируя,

'что вводимый текст будет соответствовать формату:

'###-##-####.

'Этот формат соответствует формату номеров карточек социального страхования,

'используемых в США.

'-----------------------------------------------------------------------------

Public Class SocialSecurityTextBox

Inherits System.Windows.Forms.TextBox

Private m_inputIsFullValidEntry As Boolean

'------------------------------------------------

'Указывает, получен ли

'номер карточки социального страхования полностью

'------------------------------------------------

Public ReadOnly Property IsFullValidInput As Boolean

 Get

Return m_inputIsFullValidEntry

 End Get

End Property

'Объект StringBuilder, которую мы будем часто использовать

Private m_sb As System.Text.StringBuilder

'Максимальная длина обрабатываемых строк

Const SSNumberLength As Integer = 11

'-----------

'Конструктор

'-----------

Public Sub New

 'Распределить память для нашего объекта StringBuilder и предоставить

 'место для нескольких дополнительных рабочих символов по умолчанию

 m_sb = New System.Text.StringBuilder(SSNumberLength + 5)

 m_inputIsFullValidEntry = False

End Sub

'---------------------------------------------------------------------

'Форматировать поступающий текст с целью установления его соответствия

'нужному формату:

'

' Формат номера карточки социального страхования: ###-##-####

' символы: 01234567890

'

' [in] inString : Текст, который мы хотим форматировать

' [in/out] selectionStart: Текущая точка вставки в тексте;

' она будет смещаться в связи с удалением

' и добавлением нами символов

'----------------------------------------------------------------------

Private Function formatText_NNN_NN_NNNN(ByVal inString As _

 String, ByRef selectionStart As Integer) As String

 Const firstDashIndex As Integer = 3

 Const secondDashIndex As Integer = 6

 'Удалить старые данные и поместить входную строку

 'в объект StringBuilder, чтобы мы могли с ней работать.

 m_sb.Length = 0

 m_sb.Append(inString)

 '------------------------------------------------------------

 'Просмотреть каждый символ в строке, пока не будет

 'достигнута максимальная длина нашего форматированного текста

 '------------------------------------------------------------

 Dim currentCharIndex As Integer

 currentCharIndex = 0

 While ((currentCharIndex < m_sb.Length) AndAlso _

(currentCharIndex < SSNumberLength))

Dim currentChar As Char

currentChar = m_sb(currentCharIndex)

If ((currentCharIndex = firstDashIndex) OrElse _

(currentCharIndex = secondDashIndex)) Then

'-------------------------------

'The character needs to be a "-"

  • Читать дальше
  • 1
  • ...
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: