Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 6

Входная строка имела неверный формат

08.11.2018, 03:53. Показов 3233. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проверка числа на парность.Событие TextChanged.
При запуске кода программа запускается, и даже при вводе разных чисел
сразу же выводит в другой TextBox сообщение о том, каким является число.
Но при удалении всех цифр из текст бокса, вылазит ошибка след.содержания:

Конечная цель: сделать так, что бы можно было полностью очищать текст бокс,
и вводить новое число (без закрытия программы);

"System.FormatException: "Входная строка имела неверный формат."

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

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

Попытки решения:
- питался использовать KeyPress, но там очень похожая ошибка

Собственно код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Windows.Forms;
 
namespace Form1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void txt_input_TextChanged(object sender, EventArgs e)
        {
            byte x = Convert.ToByte(txt_input.Text);
            byte n = (byte)(x << 7);
 
            if (n == 0)
            {
                txt_output.Text = "Парное";
            }
            else
            {
                txt_output.Text = "Не парное";
            }
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.11.2018, 03:53
Ответы с готовыми решениями:

Входная строка имела неверный формат
Добрый вечер. Поиском по данной проблеме пользовался, но подобного не нашел. Имеется 2 формы: 1)Основная - по клику на radioButton'е...

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

Входная строка имела неверный формат
Summ.Text = SummaViplat(Convert.ToDouble(Sum.Text), Convert.ToDouble(Proc.Text), Convert.ToInt32(Sroc.Text)).ToString(&quot;#.##&quot;); запускаю...

2
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
08.11.2018, 04:32
Лучший ответ Сообщение было отмечено MarkeRrr_ как решение

Решение

Вместо
C#
1
byte x = Convert.ToByte(txt_input.Text);
используйте
C#
1
2
3
4
5
6
7
8
if (byte.TryParse(txt_input.Text, out byte x))
{
    // ...
}
else
{
   // не число...
}
0
0 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 6
10.11.2018, 16:53  [ТС]
Someone007, премного благодарен). Работает так, как мне и нужно.

Для ограничения ввода добавил событие KeyPress:
C#
1
2
3
4
5
6
7
private void txt_input_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsDigit(e.KeyChar) && e.KeyChar != 8)
    {
        e.Handled = true;
    }
}
Для информирования пользователя о вводе числа больше, чем byte, добавил сообщение:
C#
1
2
3
4
5
6
else
{
   MessageBox.Show("Для выполнения проверки введите число \n
   в диапазоне от 0 до 255", "Внимание",
   MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Конечный код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using System.Windows.Forms;
 
namespace Form1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void txt_input_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar) && e.KeyChar != 8)
            {
                e.Handled = true;
            }
        }
 
        private void txt_input_TextChanged(object sender, EventArgs e)
        {
            if (byte.TryParse(txt_input.Text, out byte x))
            {
                byte n = (byte)(x << 7);
 
                if (n == 0)
                {
                    txt_output.Text = "Число парное";
                }
                else
                {
                    txt_output.Text = "Число не парное";
                }
            }
            else
            {
                MessageBox.Show("Для выполнения проверки введите число \n
                в диапазоне от 0 до 255", "Внимание", 
                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.11.2018, 16:53
Помогаю со студенческими работами здесь

Входная строка имела неверный формат
помогите решить проблему, пытаюсь преобразовать выдает ошибку ...

Входная строка имела неверный формат
НЕ могут понять в чем проблема. public partial class Form1 : Form { int mas = new int; ...

DataGridView. Входная строка имела неверный формат
Доброго времени суток, думаю в коде разберетесь. #pragma endregion #include &lt;cmath&gt; private: System::Void...

Входная строка имела неверный формат (int.Parse)
Здравствуйте! Подскажите, пожалуйста, выдаёт везде где &quot;n2 = int.Parse(s);&quot; - &quot;System.FormatException: &quot;Входная строка имела неверный...

Чтение из dataGridView (Входная строка имела неверный формат)
Здравствуйте, столкнулся с проблемой чтения строки из dataGridView. На одном компьютере программа выдаёт данную ошибку(Входная строка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 31.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 30.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru