Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
Oleg
1

Как осуществить ввод в TextBox по формату?

05.04.2010, 06:45. Показов 4475. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В VB6 у TextBox было свойство DataFormat, которое позволяло вводить данные по формату.
А в VB.NET нету такого.
Как быть?
Не думаю, что разработчики это опустиль, должно же быть, что то вместо этого.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2010, 06:45
Ответы с готовыми решениями:

Ввод числа по формату в столбец DataGridView
Мне надо разрешить вводить в столбец DataGridView только double в формате ##.#. Разрешить ввод...

Как осуществить бесконечный ввод
Написал программу которая узнает внутренний код элемента и наоборот. Смысл программы: вводишь...

Как осуществить вывод числовых данных в TextBox
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Как осуществить проверку на корректность ввода в TextBox
Приветствую, Друзья! Имеется TextBox-ы, в которые должны вводиться числа (числа могут быть целые и...

15
0 / 0 / 0
Регистрация: 01.03.2010
Сообщений: 223
05.04.2010, 10:20 2
мой вариант:
смысл кода в том, чтобы на каждый символ создать маску ввода
маска сохраняется в массиве, а при вводе текст сверяется посимвольно
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim x(1 to Len(TextBoxN.Text)) As String
x(1)='abcde'
x(2)='-.'
 
Sub TextBoxN_Change()
l = Len(TextBoxN.Text)
z = Right(TextBoxN.Text, 1)
If Instr(1,x(l),z)= 0 Then
If l > 1 Then
TextBoxN.Text = Left(TextBoxN.Text, l - 1)
Else
TextBoxN.Text = ''
End If
End If
End Sub
0
Oleg
05.04.2010, 10:24 3
Спасибо.
Я думал, что есть готовый метод.
0 / 0 / 1
Регистрация: 30.07.2007
Сообщений: 257
05.04.2010, 19:27 4
Более продвинутый вариант Регулярные Выражения
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'событие Validating
Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
        'Prerwat' esli ValidateControl вернул false
        'walidirowat' sender ob'ekt s maskoj dlja moskowskogo telefona
        e.Cancel = Not ValidateControl(sender, 'd{3}-d{2}-d{2}')
    End Sub
 
    Public Function ValidateControl(ByRef sender As TextBox, ByVal reg As String) As Boolean
        'esli net sowpadenij to 
        If Regex.IsMatch(sender.Text, reg) = False Then
            sender.ForeColor = Color.Red
            Return False
        Else
            sender.ForeColor = Color.Black
            Return True
        End If
    End Function
0
Oleg
06.04.2010, 06:47 5
Что такое 'Regex' в выражении:
If Regex.IsMatch(sender.Text, reg) = False Then
Oleg
06.04.2010, 07:50 6
В последнем примере (про телефон)
Номер можно вводить такой 123-12-12 и такой 123456-46-123456
А это не допустимо
0 / 0 / 1
Регистрация: 30.07.2007
Сообщений: 257
07.04.2010, 15:43 7
2Oleg
1.Это не принципиально я пытался показать КАК использовать регулярные выражения
Если принципиально то вот такое регулярное выражение будет корректней
^d{3}-d{2}-d{2}$

2.Regex класс из пространства имен
System.Text.RegularExpressions, реализует функции работы с регулярными выражениями
0
Oleg
08.04.2010, 06:41 8
Я почитал, что такое 'регулярное выражение'. Правда в моей книжке не описаны некоторые значки (фигурные скобки, на пример). Но из вашего примера понятно, что это значит.
Спасибо.
Все вроде работает и можно остановиться на этом, но...
Я вообще то имел ввиду маленько не то. Возьмите Access и попромуйте в форме добавить textbox. Далее установите маску ввода (например дату).
Вот примерно так я и хочу, что бы работало и у меня. Еще раз повторюсь: в VB6 это было (свойство DataFormat у элемента TextBox)
Куда делось оно в VB.NET? Не может быть, что бы такое важное свойство выкинули. Наверняка закопали куда поглубже.
0 / 0 / 1
Регистрация: 30.07.2007
Сообщений: 257
08.04.2010, 16:02 9
Маски ввода отменили , ликвидоровали как класс мускулистой пролетарской рукой

В фигурных скобочках указываеться количество вхождений символа
d{3} точно 3 цифры
d{,3} до 3 символов
d{3,} 3 и больше символов
d{1,3} от 1 до 3 символов

Кста. вот здесь
http://www.codeproject.com/dotnet/Expresso.asp
Очень хорошая 'тулза' для редактирования/тестирования регулярных выражений, пользую постоянно.
0
Oleg
11.04.2010, 06:44 10
Сходил на http://www.codeproject.com/dotnet/Expresso.asp
Но там требуют пароль (
Хотя надо заметить штука хорошая.
Oleg
11.04.2010, 06:44 11
Может вы по почте кинете?
PavelA
11.04.2010, 12:23 12
Посмотри здесь (здесь есть много альтернатив Expresso, где регистрация не нужна):

http://msdn.microsoft.com/vcsharp/team/tools/
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
11.04.2010, 14:35 13
Я бы рекомендовал зарегистироваться на http://www.codeproject.com и заглядывать туда почаще, многие вопросы типа: 'а как зделать, чтобы... ?', 'а каким образом ... ?' отпадут сами собой - на руках будет готовый работающий пример с исходным кодом и описанием.

С уважением, Владимир
0
0 / 0 / 1
Регистрация: 30.07.2007
Сообщений: 257
11.04.2010, 15:22 14
2Oleg Отправил ехпрессо вам почту, это вариант без исходников, если нужны будут исходники пишите

А на кодепроджект лучше зарегистрироваться в этом я полностью согласен с тов. boombastik'ом

2kibizoid Действительно интересный линк, спасибо.
0
Oleg
12.04.2010, 08:31 15
Скачал пример ввода текста по маске http://www.codeproject.com/vb/net/validtext3.asp
Это то что мне нужно, и за что я так вас всех много пытал.
Но вот как он работает, не понимаю ((
Каким образом обрабатывается ввод по маске?
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
12.04.2010, 11:01 16
А в исходники слабо заглянуть?
0
12.04.2010, 11:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2010, 11:01
Помогаю со студенческими работами здесь

Как осуществить проверку на введённое значение в textbox
Как осуществить проверку на введённое значение в textbox? Т.е проверять если нечего не введено...

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

Как осуществить неограниченный ввод в консоль?
Необходимо вводить в консоль случайное количество чисел разделенные пробелом, например: 2 10 11 9...

Как осуществить ручной ввод массива?
Доброго времени суток, уважаемые программисты! Могли бы ли вы ответить на пару вопросов по...

Формат ввода: как осуществить построчный ввод?
Здравствуйте я решаю олимпиадные задачи, но я не понял как вводить 2 строку? Через пробел или...

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru