Вы должны использовать MaskedTextBox
вместо обычного TextBox
. Затем просто установите для свойства Mask
значение 990\.990\.990\.990
, и все готово.
- 9 необязательная цифра или пробел
- 0 обязательная цифра
- \. экранированная точка
UPDATE
Хотя я и предложил использовать MaskedTextBox
, я никогда (по крайней мере, не помню) сам не использовал его. Теперь я просто попробовал ... ну, забудь, что я сказал. Я подумал, что это может быть простое решение, но это тоже непригодное решение.
Новое, более сложное, но гораздо лучшее предложение и способ, которым я обычно делаю это.
Создайте пользовательский элемент управления с четырьмя текстовыми полями, по три метки с точкой между ними.
Анализ входных данных.
- Просто передайте ключи управления элементу управления.
- Перемещение фокуса, если пользователь вводит точку, табуляцию (будет обрабатываться элементом управления), пробел, может быть четвертой цифрой.
- Откажитесь от всего, что не является цифрой.
- Сбросить цифру, если число выпадает из диапазона от 0 до 255.
- Измените текст на 0, если пользователь удаляет последнюю цифру.
- Удалить начальный ноль, если пользователь вводит ненулевую цифру.
Добавление в пользовательский элемент управления свойства, которое возвращает введенный адрес.
Возможно, сделаем proeprty доступным для записи и добавим обработку событий.