Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
ник: AlexSyr А я для себя использую:
'Проверяет введенное в текстовое поле (ctlIN - ссылка на объект TextBox) значения на соответствие: ' WhatIN = Dig - цифрам ' Dec - цифрам (+ "."-точка и ","-запятая) ' Chr - буквам ' LenIN = MAX длина вводимой строки ' FormatIN = Upp - перевод строки в верхний регистр ' Lwr - перевод строки в нижний регистр 'Возвращает позицию указателя курсора Public Function CheckInput(ctlIN, WhatIN, Optional LenIN, Optional FormatIN) Dim strTmp As String strTmp = Mid(ctlIN.Text, ctlIN.SelStart, 1) 'Если был удален первый элемент строки, то SelStart будет = 0, и ничего не проверяем If ctlIN.SelStart <> 0 Then 'Проверка на длину строки If IsMissing(LenIN) = False Then 'Задано значение длины If Len(ctlIN.Text) > LenIN Then Resp = MsgBox("В данное поле РАЗРЕШЕНО вводить" & vbCrLf & _ "ТОЛЬКО " & LenIN & " символ(а/ов)", vbCritical, "ОШИБКА") 'Именно сначала сохраняем позицию курсора, а затем изменяем значение поля ' Иначе позиция курсора собьется CheckInput = ctlIN.SelStart - 1 ctlIN.Value = Mid(ctlIN.Text, 1, ctlIN.SelStart - 1) & Mid(ctlIN.Text, ctlIN.SelStart + 1) Exit Function End If End If 'Проверка на Цифры/Буквы If WhatIN = "Dig" Then 'Проверка на цифры If IsNumeric(strTmp) = False Then Resp = MsgBox("Можно вводить ТОЛЬКО ЦИФРЫ", vbCritical, "ОШИБКА") CheckInput = ctlIN.SelStart - 1 ctlIN.Value = Mid(ctlIN.Text, 1, ctlIN.SelStart - 1) & Mid(ctlIN.Text, ctlIN.SelStart + 1) Else CheckInput = ctlIN.SelStart End If ElseIf WhatIN = "Dec" Then 'Проверка на цифры (+ "."-точка и ","-запятая) If IsNumeric(strTmp) = False And strTmp <> "." And strTmp <> "," Then Resp = MsgBox("Можно вводить ТОЛЬКО ЦИФРЫ, ТОЧКУ или ЗАПЯТУЮ", vbCritical, "ОШИБКА") CheckInput = ctlIN.SelStart - 1 ctlIN.Value = Mid(ctlIN.Text, 1, ctlIN.SelStart - 1) & Mid(ctlIN.Text, ctlIN.SelStart + 1) Else CheckInput = ctlIN.SelStart End If ElseIf WhatIN = "Chr" Then 'Проверка на буквы If IsNumeric(strTmp) = True Then Resp = MsgBox("Можно вводить ТОЛЬКО БУКВЫ", vbCritical, "ОШИБКА") CheckInput = ctlIN.SelStart - 1 ctlIN.Value = Mid(ctlIN.Text, 1, ctlIN.SelStart - 1) & Mid(ctlIN.Text, ctlIN.SelStart + 1) Else CheckInput = ctlIN.SelStart 'Форматирование строки If IsMissing(FormatIN) = False Then 'Задано значение форматирования If FormatIN = "Upp" Then 'Перевод в верхний регистр ctlIN.Value = StrConv(ctlIN.Text, vbUpperCase) ElseIf FormatIN = "Lwr" Then 'Перевод в нижний регистр ctlIN.Value = StrConv(ctlIN.Text, vbLowerCase) End If End If End If End If End If End Function
Private Sub TextFld_Change() 'Проверяем введенное значение на цифру и длину 3 знака Me.TextFld.SelStart = CheckInput(Me.TextFld, "Dig", 3) End Sub
Ваше имя:
Пароль:
Сообщение:
Прикрепить:
Для вставки смайлов в текст щелкните по значку.