int.Parse (textBox1.Text) ошибка - PullRequest
0 голосов
/ 14 апреля 2011

Я получаю сообщение об ошибке int pocet = int.Parse(textBox1.Text);

Это говорит о том, что данные имеют неправильный формат, но я пишу только натуральные числа в TextBox1

Ответы [ 7 ]

2 голосов
/ 14 апреля 2011

Я подозреваю, что у вас либо есть пустая строка, либо есть пробел в начале или конце, либо вы пишете в разделителях тысяч.

Вы можете указать методу Int32.Parse обрабатывать некоторыеиз этих случаев, подобных этому:

Int32.Parse(
   "  -12,340  ",
   NumberStyles.AllowLeadingWhite |
   NumberStyles.AllowThousands |
   NumberStyles.AllowTrailingWhite |
   NumberStyles.AllowLeadingSign,
   CultureInfo.CurrentCulture));

Обратите внимание, что текущий бит культуры в конце важен, потому что разделитель тысяч будет отличаться в зависимости от культуры, для которой пользователь установил свой компьютер.

Это все равно не будет обрабатывать пустую строку - просто проверьте, пуста ли строка перед выполнением анализа.

2 голосов
/ 14 апреля 2011

Я бы, вероятно, использовал метод TryParse, который не будет генерировать исключение при наличии неверных данных, но позволит вам использовать поток управления и логику для его обработки:

  int number;
  bool result = Int32.TryParse(TextBox.Text.Trim(), out number);
  if (result)
  {
     //Carry On/    
  }
  else
  {
     //Handle input error
  }
1 голос
/ 14 апреля 2011

, если вы используете натуральное число, тогда используйте

Элемент управления NumericUpDown

int pocet = int.Parse(numericUpDown1.Value.ToString());
0 голосов
/ 01 октября 2013

У меня та же проблема .... убедитесь, что вы используете правильный номер Cap
9 и
9
первый будет работать, а второй нет!

Надеюсь, это поможет

@ txshon

0 голосов
/ 10 сентября 2011

Используйте этот метод:

int pocet = Int32.Parse(TextBox1.Text.ToString());
0 голосов
/ 14 апреля 2011

Попробуйте использовать

Convert.ToInt32 (textBox1.Text);

Также отладка, чтобы убедиться, что у вас есть только целые числа в textBox1.Text во время преобразования.

0 голосов
/ 14 апреля 2011

Попробуйте:

int intValueFromTbx = Convert.ToInt32(textBox1.Text)
...