1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
1 | |
Как сделать маску для ввода чисел в TextBox ?16.06.2022, 10:56. Показов 2567. Ответов 19
Метки нет (Все метки)
Добрый день! Подскажите, пожалуйста, как сделать маску при вводе чисел для поля TextBox?
Пример: 5350127.55 должно выглядеть при вводе как 5 350 127.55 или 5,350,127.55 К сожалению, в TextBox видимо нет встроенных свойств учета маски ввода. Желательно, чтобы при вводе был контроль на ввод только чисел. Спасибо.
0
|
16.06.2022, 10:56 | |
Ответы с готовыми решениями:
19
Как сделать маску в TextBox для ввода e-mail Как сделать маску в TextBox для ввода номера телефон Можно ли сделать для TextBox маску ввода? Как сделать маску ввода для дбэдита? |
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
|
16.06.2022, 14:34 | 2 |
ykr, а вам как хотелось бы: Текст заносится по маске при выходе и текстбокса (это проще) или маска отслеживалась при вводе, т.е. изменение во время ввода цифр?
0
|
1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
16.06.2022, 15:56 [ТС] | 3 |
Burk, лучше конечно иметь маску именно при вводе чисел, а не после выхода из TextBox.
Понимаю, что нужно как то группировать вводимые цифры на миллионы, тысячи и т.д. и на ходу перестраивать с учетом предполагаемой маски. Можно предположить, что максимальное число это миллиарды.....то маска будет ###,###,###,###.## Возможно, что нужно ждать ввода точки "." и после этого перестраивать вид в поле. Но как быть, если это число будет целым? Конечно рядом можно вставить еще один TextBox2 и выводить число в это поле с применением Format с нужной маской, но это уже другой подход. Нашел как сделать контроль на ввод чисел в TextBox и запрет ввода букв и спецсимволов.
0
|
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
|
16.06.2022, 16:24 | 4 |
ykr, вводить только числа это достаточно просто,но ещё надо учитывать исправление, удаление цифр пользователем и, вследствие этого, изменение троек чисел. Посмотрю.
Добавлено через 12 минут ykr, а вы хотите видеть ххх в тектбоксе или после ввода трех цифр просто вставить пробел и сдвигать положение курсора вправо (влево) и окончательно проверить маску при выходе или при вводе точки?
0
|
1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
16.06.2022, 20:05 [ТС] | 5 |
Burk, давайте как проще.
Можно конечно сразу визуализировать маску в поле. Например, в поле при открытии формы может быть написано: (xxx),(xxx),(xxx),(xxx).xx или xxx,xxx,xxx,xxx.xx или xxx xxx xxx xxx.xx т.е выбрать разделитель между знаками, как параметр. При заполнении поля пользователь заранее должен ставить в нужную группу числа. Выбрать миллиарды собирается заполнять или миллионы или тысячи. Курсор должен по идее двигаться вправо по мере заполнения маски и перескакивать вправо в следующую группу, по мере заполнения поля. Итак, до заполнения дробной части, если она есть. Если нужно, исправить число, то исправляются нужные позиции в определенной группе. Число окончательно визуализируется после выхода из поля. Вариант2, он проще. Вводится число до точки .xx и после выхода из поля число визуализируется. Но в обоих вариантах остается вопрос, что делать после выхода с поля, с визуализацией незаполненных позиций? Оставлять незаполненные решетки "##7,#45" - нет смысла, после выхода с поля их нужно убирать. Ну, а если возвращаться в поле для коррекции числа нужно обратно маску возвращать, с ранее заполненным числом. В общем все как-то усложняется. Может есть уже ранее придуманный простой вариант работы с маски чисел?
0
|
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
|
||||||
17.06.2022, 02:52 | 6 | |||||
вариант в лоб
пропускает только числа с одной точкой и двумя знаками после точки разделители разрядов пробелы Кликните здесь для просмотра всего текста
0
|
1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
17.06.2022, 11:48 [ТС] | 7 |
Alex77755, все работает как и нужно.
Маску можно менять при желании. Воспринимаются только цифры. Спасибо большое!!! Вот ниже ссылки, которые были весьма полезны по обсуждаемой теме. https://www.planetaexcel.ru/fo... &TID=15227 Авто коррекция ввода даты в TextBox Фильтр ввода в textbox Как сделать маску в TextBox для ввода номера телефон Как сделать маску в TextBox для ввода e-mail Разрешить ввод в текстбокс только цифр Как задать маску ввода для texbox?
0
|
1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
18.06.2022, 23:15 [ТС] | 8 |
Alex77755, прошу прощения, а как ваш вариант маски
сделать более универсальным? например, для ввода Даты в texbox. формат dd.mm.yyyy или dd/mm/yyyy попробовал такую логику: ввод двух цифр и автоматом ставится точка в поле. Еще две цифры и опять ставится точка. А далее может быть ввод двух или четырех цифр. если 2022, тогда ввод оконсен и пропускается число, если ввели две цифры, только 22 или иное., тогда добавляется к веденному 20. В итоге год выглядит как 2022, 2023 и т.д Но вот возникают нюансы при коррекции даты. удаляя одну цифру...все сдвигается и плывет. А если вместе с точкой, то тем более, все становится некорректным. Как тут можно контроль настроить ?
0
|
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
|
||||||
19.06.2022, 03:07 | 9 | |||||
несколько проверок корректности ввода сделал но не все Месяц не может начинаться с 2 и выше день не может начинаться с 4 и выше и не может быть больше 31 для ввода корректной даты проще использовать календарь. Их полно разных. Вызвать календарь и выбрать дату Кликните здесь для просмотра всего текста
0
|
1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
19.06.2022, 10:27 [ТС] | 10 |
Alex77755, добрый день!
спасибо! проверю вечером и отпишусь. да проверок оказалось больше, чем изначально предполагал. Насчет календаря, то рад бы его применить, но его нет в Офисе 2013, 2016, 2019. Раньше был и я им польщовался в Access. Попробовал поискать, но под VBA не нашел. Есть .Net и другие...., там и TextBox имеет свойство Маска. Может у вас есть ссылка на календарь для VBA?
0
|
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
|
|
19.06.2022, 13:58 | 11 |
Да календарей самодельных море
0
|
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
|
|
19.06.2022, 14:21 | 12 |
Вот немного допилил и сохранил в надстройку
Вызов через контекстное меню Дату возвращает в активную ячейку
0
|
1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
19.06.2022, 14:40 [ТС] | 13 |
Alex77755,
спасибо, вечером все проверю. насчет календаря понял, он бывает нужен часто. и чаще в эксель форме. Но блин, сейчас форма в вордовском документе создана. Как его пристроить? или запускать и ворд и эксель для календаря?
0
|
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
|
|
19.06.2022, 14:59 | 14 |
В последнем моём сообщении календарь в надстройке
Просто подключить надо и все Будет работать в любой книге вызывается по ПКМ из любой ячейки
0
|
1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
19.06.2022, 22:45 [ТС] | 15 |
Alex77755, попробовал ввод даты в TextBox.
при вводе даты dd.mm.yyyy все отрабатывает как нужно. Коррекция даты есть только, если год нужно ввести другой. коррекции даты и месяца нет...там все сдвигается, что впрочем мы и предполагали..что с этим бороться излишне.. Поэтому, действительно, если ввел дату с ошибкой нужно выделить все поле, удалить что там было и заново ввести всю дату. Что касается календаря и надстройки. Я правильно понимаю, что этот календарь можно будет использовать только при работе с Excel ? Пока не получилось надстройку подключить...архив сохранил..файлы извлек... При подключении пишет-file not found. Завтра буду разбираться, что и почему не находит. Спасибо за помощь!
0
|
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
|
|
20.06.2022, 02:47 | 16 |
Да этот календарь написан на VBA для екселя и работает только с екселем
запаковал другим архиватором
0
|
1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
20.06.2022, 15:56 [ТС] | 17 |
Alex77755, добрый день! Надстройка установилась. Но в контекстом меню ее не видно.
Использую офис 2019. Как ее вызвать, можете эксель лист с примером вложить? Буду признателен, спасибо!
0
|
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
|
|
20.06.2022, 16:33 | 18 |
хмм...
какой лист? я выложил надстройку просто запустите ексел и просто откройте файл Calendar_UserForm_н.xla Или подключите её стандартным способом: Файл - Параметры - Настройки - Внизу окна Надстройки ексел - перейти - Обзор - и указать путь к надстройке
0
|
1 / 1 / 1
Регистрация: 11.01.2019
Сообщений: 99
|
|
20.06.2022, 16:33 [ТС] | 19 |
Alex77755, Отбой! Все ОК - Календарь в меню появился, вызывается и устанавливает дату в активную ячейку.
Нужно было перезапустить офис или перегрузиться. Жаль, что нет подобного календаря для Ворда! Спасибо еще раз!
0
|
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
|
|
21.06.2022, 06:10 | 20 |
Но не уверен, что нельзя сделать. Скорей всего можно
0
|
21.06.2022, 06:10 | |
21.06.2022, 06:10 | |
Помогаю со студенческими работами здесь
20
Как задать маску ввода в TextBox Как ограничить ввод информации или задать маску ввода в компонент textBox? Как сделать маску в TextBox Как сделать маску ввода в DbEdit? Как сделать маску ввода телефона в контактной форме? Как сделать TextBox для ввода матрицы? Как задать маску для ввода? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |