Nicomendox Ответов: 1

Как я могу установить textbox maxlenght во время запуска программы.?


I want to set MaxLength of TextBox when TextChanged in Calculator Program.

İf there is Comma in TextBox I want to set MaxLength 19 if not there is comma in textboxI want to set MaxLength 24

I want this because there are 1000 Separator in TextBox. When user enter digits inside TextBox When put comma then Length must set 24 if not set max 19 digits.


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

Private Sub txtInput_KeyDown(sender As Object, e As KeyEventArgs) Handles txtInput.KeyDown
       If Not InStr(1, txtInput.Text, ",") Then
           txtInput.MaxLength = 19
       Else
           txtInput.MaxLength = 24

       End If

   End Sub

1 Ответов

Рейтинг:
0

OriginalGriff

Это не очень хорошее решение или даже близко к нему.
А что если я наберу

1,2345678901234567890123
Там есть запятая, так что разрешены 24 цифры, но это далеко за пределами вашего лимита.
Или что если я наберу
Hello, this is a test...
Это тоже 24 символа, с запятой.

Вместо использования текстового поля используйте NumericUpDown и установите максимальное и минимальное значения, которые они могут ввести. Он действует как текстовое поле, но не позволяет пользователю вводить недопустимые значения.

И вы понимаете, насколько велико число 19 цифр? Он помещается в unsigned Int64, но не помещается в double или даже decimal. Вы уверены, что это допустимый верхний предел для ваших номеров?


Nicomendox

Прежде всего тогда для ответа.
Я совершаю ошибку... Я хочу сказать ... .. на экране калькулятора я пытаюсь установить максимальную длину цифры. Например:(в моей стране мы используем запятую для десятичных чисел и используем точку для tousand seperater.)

1,234,567,890,123,456 (общая длина-21) (количество цифр= 16)
12,345,678,901,234.56 (общая длина-21) (количество цифр= 16)
123,456,789,012,345.6 (общая длина-21) (количество цифр= 16)
123,456,789.0123456 (общая длина-19) (количество цифр= 16)
1,234,567,890.123456 (общая длина-20) (количество цифр= 16)
1.234567890123456 (общая длина-17) (количество цифр= 16)

как вы можете видеть. Я хочу установить максимальный предел цифр-16. когда количество цифр равно 16, то textboxt не допускает большего количества цифр.

OriginalGriff

Тем не менее не делайте этого: используйте элемент управления NumericUpDown, и пусть система сделает всю работу за вас. Он ориентирован на культуру, поэтому принимает все, что пользователь установил по умолчанию, и вам не нужно ничего делать, чтобы адаптироваться.

Nicomendox

Спасибо вам, наконец-то я решил с вашим советом. Большое спасибо!.

OriginalGriff

Всегда пожалуйста!