obsa1 Ответов: 2

Как можно разделить и проверить числа с помощью запятой от 1 до 60 при вводе текстового поля


я хочу ввести число от 1 до 60, используя разбиение на запятую в текстовом поле.пожалуйста, помогите мне!

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

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

int number;
if (int.TryParse(txtBox.Text, out number))
{
   //  string[] ListOfxx = xx.Split(',');
   if (number  <= 63 && number >= 1)
   {
      e.Handled = true;
   }
                    
   MessageBox.Show(" above between 1-60, invalid!");                     
}

Richard MacCutchan

"От 1 до 60 с использованием разделителей через запятую"
Что это значит, почему у вас должна быть запятая в числе меньше 61?

2 Ответов

Рейтинг:
1

OriginalGriff

Любая функция преобразования смотрит на весь входной сигнал, поэтому любой "неожиданный символ", такой как запятая, не распознается как допустимый входной сигнал. Все, что вам нужно сделать, это использовать функцию разделения, которую вы закомментировали, а затем обработать все "разделы" в цикле:

string[] numbers = txtBox.Text.Split(',');
foreach (string s in numbers)
    {
    int number;
    if (!(int.TryParse(s.Trim(), out number) && number >= 1 && number <= 60))
        {
        MessageBox.Show("Input must be a list of values between 1 and 60 inclusive, separated by commas");
        e.Handled = false;
        return;
        }
    }
e.Handled = true;


Рейтинг:
1

Wendelius

Вы можете разделить входные данные с помощью Строка.Метод Разделения (Char[]) (Система)[^]. Это вернет вам массив, содержащий каждое значение между разделителями, и после разделения вы сможете протестировать/использовать все отдельные значения .