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

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

Жанры

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

Салмре Иво

Шрифт:

m_sb.Remove(currentCharIndex, 1);

//Если мы добавили символ перед точкой вставки,

//она должна быть смещена назад

if (currentCharIndex < selectionStart) {

selectionStart--;

}

//He увеличивать значение счетчика символов, ибо мы должны

//просмотреть символ, занявший место того символа,

//который
мы удалили

} else {

//Символ является цифрой, все нормально.

currentCharIndex++;

}

}

}

//Если превышена длина строки, усечь ее

if (m_sb.Length > SSNumberLength) {

m_sb.Length = SSNumberLength;

}

//Возвратить новую строку

return m_sb.ToString;

 }

 bool m_in_OnChangeFunction;

 protected override void OnTextChanged(EventArgs e) {

//------------------------------------------------------------------

//Если мы изменим свойство .Text, то будет осуществлен повторный

//вход в обработчик. В этом случае мы не хотим предпринимать никаких

//действий и должны просто выйти из функции без передачи события

//куда-то еще.

//------------------------------------------------------------------

if (m_in_OnChangeFunction == true) {

return;

}

//Заметьте, что сейчас мы находимся в функции OnChanged,

//поэтому мы можем обнаружить повторное вхождение (см. код выше)

m_in_OnChangeFunction = true;

//Получить текущее свойство .Text

string oldText = this.Text;

//Получить текущий индекс

SelectionStart int selectionStart = this.SelectionStart;

//Форматировать строку, чтобы она удовлетворяла нашим потребностям

string newText = formatText_NNN_NN_NNNN(oldText, ref selectionStart);

//Если текст отличается от исходного, обновить

//свойство .Text

if (System.String.Compare(oldText, newText) != 0) {

//Это приведет к повторному
вхождению

this.Text = newText;

//Обновить местоположение точки вставки

this.SelectionStart = selectionStart;

}

//Мы принудительно обеспечили соответствие введенного текста

//правильному формату, поэтому, если длина строки согласуется с длиной

//номера карточки социального страхования, то мы знаем что она имеет

//формат ###-##-####.

if (this.Text.Length == SSNumberLength) {

//Да, мы имеем полный номер карточки социального страхования

m_inputIsFullValidEntry = true;

} else {

//Нет, мы пока не получили полный номер карточки социального страхования

m_inputIsFullValidEntry = false;

}

//Вызвать наш базовый класс и сообщить всем объектам, которых это

//может интересовать, что текст изменился

base.OnTextChanged(e);

//Заметьте, что сейчас мы покидаем наш код и хотим отключить

//проверку повторных вхождений в него.

m_in_OnChangeFunction = false;

 }

 protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e) {

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

//то просто игнорировать их, если они встречаются.

char keyPressed = e.KeyChar;

if (System.Char.IsLetter(keyPressed)) {

//Сообщить системе о том, что событие обработано

e.Handled =true;

return;

}

//Обработать нажатие клавиши обычным способом

base.OnKeyPress(e);

 } //Конец функции

} //Конец класса

Листинг 13.4 Код формы для создания пользовательского элемента управления TextBox

//-----------------------------------------------------------------

//Переменная для хранения нашего нового элемента управления TextBox

//-----------------------------------------------------------------

SocialSecurityTextBox m_filteredTextBox;

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

Страх

Рыбаков Анатолий Наумович
2. Дети Арбата
Проза:
историческая проза
9.49
рейтинг книги
Страх

Дважды одаренный. Том VIII

Тарс Элиан
8. Дважды одаренный
Фантастика:
боевая фантастика
альтернативная история
аниме
попаданцы
5.00
рейтинг книги
Дважды одаренный. Том VIII

Мастер Трав III

Мордорский Ваня
3. Мастер Трав
Фантастика:
фэнтези
рпг
фантастика: прочее
попаданцы
5.75
рейтинг книги
Мастер Трав III

Старый, но крепкий 2

Крынов Макс
2. Культивация без насилия
Фантастика:
рпг
уся
эпическая фантастика
5.00
рейтинг книги
Старый, но крепкий 2

Двойник Короля

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

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

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

Лекарь Империи 2

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

Хозяин Стужи 7

Петров Максим Николаевич
7. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Хозяин Стужи 7

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

Твое сердце будет разбито. Книга 1

Джейн Анна
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Твое сердце будет разбито. Книга 1

Мой муж – чудовище! Изгнанная жена дракона

Терин Рем
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Мой муж – чудовище! Изгнанная жена дракона

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Изгой Проклятого Клана. Том 3

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

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4