Member 13077860 Ответов: 3

Формат входных данных клиентов в текстовое поле в C#


Всем Привет
Как я могу сделать текстовое поле, которое принимает сначала 4 буквы, а затем 7 цифр, иначе пользователь получит ошибку

я понятия не имею что делать пожалуйста направьте меня в правильном направлении

Что я уже пробовал:

я попытался использовать замаскированное текстовое поле, но это не сработало

если (!Системы.Текст.RegularExpressions.Регулярное выражение.Выполняется(электронная.Ключевой-символ.ToString(), "\\d+"))
е.Обработано = истина;

Samuel Corpuz

Используйте ^[a-zA-Z]{4}\d{7}$ this. чтобы максимально сократить код

3 Ответов

Рейтинг:
1

OriginalGriff

Ваше регулярное выражение работает только для цифр, и ему все равно ,сколько их там, при условии, что где-то в строке есть хотя бы одна.
Попробовать это:

^[a-zA-Z]{4}\d{7}$


Member 13077860

Наконец я нашел решение

if (txtContainerNo.TextLength < 4)
{
е.Обрабатываются = !(голец.IsUpper(электронная.Ключевой-символ) || электронная.Ключевой-символ == (тип char)ключи.Обратно);


}

еще
{
е.Обрабатываются = !(голец.IsDigit(электронная.Ключевой-символ) || электронная.Ключевой-символ == (тип char)ключи.Обратно);
}

OriginalGriff

Так... Я набираю "ABCD", то с помощью мыши нажимаю посередине и набираю "1234567" вы разрешите "AB1234567CD" пройти?

Не делайте проверку "во время ввода": это только сбивает пользователя с толку. Используйте регулярное выражение, которое я дал вам в событии проверки.

Рейтинг:
1

Member 13077860

if (txtContainerNo.TextLength < 4)
         {
             e.Handled = !(char.IsUpper(e.KeyChar) || e.KeyChar == (char)Keys.Back);


         }

         else
         {
             e.Handled = !(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back);
         }


Рейтинг:
0

Member 13077860

if ((e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z) || (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9))
       {
           charCount++;
       }


       else if (e.KeyCode == Keys.Back)
       {
           charCount--;
       }

       else
       {

       }




       if (charCount <= 4)
       {
           if (e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z && e.Shift && e.KeyCode == Keys.Back)
           {



           }
           else
           {
               e.SuppressKeyPress = true;
           }

       }


       else if (charCount > 4)
       {
           if (!(e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z && e.KeyCode != Keys.Back))
           {



           }
           else
           {
               e.SuppressKeyPress = true;
           }