Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для dimsaratov
356 / 295 / 78
Регистрация: 02.10.2013
Сообщений: 476
Записей в блоге: 5

Как сделать поле ввода с маской, причем длина чисел может варьироваться

19.03.2014, 21:04. Показов 1194. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть числовой код:
4 группы целых чисел разделенные пробелом, в каждой группе могут быть числа от –99999 до 99999
Как сделать поле ввода для такого кода по типу MasketTextBox
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.03.2014, 21:04
Ответы с готовыми решениями:

Как сделать запрет ввода букв в поле для ввода input
Здравствуйте! Есть стандартное поле ввода <input type='text' name='name1' size='30' maxlength='11'> предназначенное для ввода...

Как программно изменить цвет текста в поле ввода и как выделить весь текст в поле ввода по умолчанию
Как программно изменить цвет текста в поле ввода и как выделить весь текст в поле ввода по умолчанию? Т.е. надо чтоб по ходу выполнения...

как сделать поле ввода с клавиатуры
есть программа в архиве,сейчас у меня там сделано чтоб мышкой нажимаешь лампа загорелась,а нужно еще поле ввода с клавиатуры,ввел 1...

5
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
19.03.2014, 21:35
Как вариант 4 элемента "MaskedTextBox" вплотную на форму бросить и итоговый считать
VB.NET
1
MaskedTextBox5.Text = MaskedTextBox1.Text & " " & MaskedTextBox2.Text & " " & и т.д.
А каждый текстбок уже настроить на ввод цифр определенной длины
Миниатюры
Как сделать поле ввода с маской, причем длина чисел может варьироваться  
1
 Аватар для dimsaratov
356 / 295 / 78
Регистрация: 02.10.2013
Сообщений: 476
Записей в блоге: 5
19.03.2014, 22:29  [ТС]
Трудность именно в том что длина любой части кода переменна
а городить огород с собственным контролом нет времени
Видел подобный под ввод IP (в принципе то что нужно)
0
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
22.03.2014, 20:27
уверен поможет отмена нажатия клавиши. не помню точную интерпретацию, но чтото наподбие e.Cancelled в событиях keypress/keydown. покопайтесь в этом направлении)) если грамотно расставить мысли, то не придется изобретать велосипедов на собственных контролах) оочень давно меня выручила сия фича в подобной проблеме)
что касается маски ip, попробуйте набор компонентов telerik. естесс-но шареваре, но в сети есть кое что иное и с ними нет никаких проблем будто фриваре задуманы) там же все легко сможете реализовать не маской, а очень интересно маской-regex(из готового есть еще и айпи и нумерация и еще чета)
1
 Аватар для dimsaratov
356 / 295 / 78
Регистрация: 02.10.2013
Сообщений: 476
Записей в блоге: 5
23.03.2014, 10:59  [ТС]
К сожалению ни Telerik ни DevExpress не проходят по бюджету
0
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
23.03.2014, 12:55
но в сети есть кое что иное и с ними нет никаких проблем будто фриваре задуманы)
в лс отписал) многим не по карману, но telerik в отличии от devexpress хорошо обошли, будто она и не задумана быть платной. если вариант не подходит, в таком случае e.cancelled самый лучший вариант думаю

Добавлено через 6 минут
а нет ошибочка) надеюсь не успел вас ввести в заблуждение, немножко перепутал. вам нужно событие textchanging и аргумент e.Cancel

Добавлено через 30 минут
Вот состряпал
VB.NET
1
2
3
Private Sub RadTextBox1_TextChanging(sender As Object, e As Telerik.WinControls.TextChangingEventArgs) Handles RadTextBox1.TextChanging
        If System.Text.RegularExpressions.Regex.IsMatch(e.NewValue, "((-?\d{1,5})\s){1,3}") = False Then : e.Cancel = True : End If
    End Sub
Но проблема в том, что соблюдаются оба условия - пробел и 1-5 цифр(с/без минуса). Не придумал как решить, ниже оставлю лог разбора по разным маскам, думаю что-нибудь додумаете. Или альтернативный вариант - проверить длину текста, если 1 то проверить цифра это минус или пробел чтобы допустить ввод.
VB.NET
1
2
3
4
5
6
7
8
Разбираем 999 888 999999 -08989 989 07 89098  по маске ((-?\d{0,5})\s){1,3}:
0: 999 888 ; 99999 -08989 989 ; 07 89098 ; 
Разбираем 999 888 999999 -08989 989 07 89098  по маске ((-?\d{0,5})\s){1,3}|\d?:
0: 999 888 ; 9; 99999 -08989 989 ; 07 89098 ; ; 
Разбираем 99989 -8 88808  по маске ((-?\d{0,5})\s){1,3}|[\s\d\-]{1}:
0: 99989 -8 88808 ; 
Разбираем 99989 -8 88808 58779 0000 999 -8989  по маске ((-?\d{0,5})\s){1,3}|[\s\d\-]{1}:
0: 99989 -8 88808 ; 58779 0000 999 ; -8989 ;
Ах да, еще нужна будет проверка на одно совпадение маски) т.е. выражение группирует текст по вашим условиям, бесконечное число раз(они разделены ; ). Тут поможет
VB.NET
1
regex.matches.count
и вот как раз что-то проясняется по предыдущей проблеме возможно убрать из маски {1,3} и добавить проверку на count) дерзайте
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2014, 12:55
Помогаю со студенческими работами здесь

HTML!? Есть поле ввода Type text, после ввода текста и нажатия entrer теряется фокус, как его оставить в этом же поле?
HTML!? Есть поле ввода Type text, после ввода текста и нажатия entrer теряется фокус, как его оставить в этом же поле?

Как сделать поле для ввода пароля
В Java есть jPasswordField вроде. В С# не нашёл похожего. Какие есть варианты?

Как сделать поле для ввода изначально пустым?
Уважаемые знатоки! Пожалуйста, помогите чайнику. Подскажите, пожалуйста, есть ли какая-то шпаргалка для совсем новичка, которому не надо...

Как сделать стандартное поле для ввода пароля ?
Здравствуйте! подкиньте пожалуйста парочку идей, как можно сделать стандартное поле для ввода пароля(* вместо введенного символа). Только...

Как в выпадающем списке сделать поле для ввода?
как сделать чтобы в выпадающем списке можно было не только выбрать, но и ввести значение?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru