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

Ошибка при нажатии на кнопку!

01.06.2018, 22:12. Показов 2108. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня прога калькулятор матриц. Если не внесены данные и нажать на кнопку =/-/*, то выдает ошибку "System.FormatException: "Входная строка имела неверный формат." " Как это исправить, ведь у меня есть messagebox на это

КОД:
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
45
46
47
 private void button7_Click(object sender, EventArgs e)
        {
           // Matxix  
            if (Convert.ToInt16(txt_Columns.Text) == Convert.ToInt16(txt_row2.Text))
            {
                Ans_Grid.RowCount = Convert.ToInt16(txt_Row1.Text);
                Ans_Grid.ColumnCount = Convert.ToInt16(txt_Col2.Text);
                Ans_Grid.AutoResizeColumns();
                Ans_Grid.AutoResizeRows();
                //Matrix 
                try
                {
                    foreach (DataGridViewRow row in this.dataGridView1.Rows)
                    {
                        int R1 = row.Index;
                        {
                            for (b = 0; b < dataGridView2.ColumnCount; b++)
                            {
                                a = 0;
                                for (c = 0; c < dataGridView2.RowCount; c++)
                                {
                                    decimal D = Convert.ToDecimal(dataGridView1.Rows[R1].Cells[c].Value.ToString());
                                    decimal E = Convert.ToDecimal(dataGridView2.Rows[c].Cells[b].Value.ToString());
                                    decimal A = D * E;
                                    Ans_Grid.Rows[R1].Cells[b].Value = decimal.Parse(A.ToString());
                                    Ans_Grid.Rows[R1].Cells[b].Value = a + Convert.ToDouble(Ans_Grid.Rows[R1].Cells[b].Value);
                                    a = Convert.ToDouble(Ans_Grid.Rows[R1].Cells[b].Value);
                                }
                            }
                        }
                    }
                }
                catch (Exception)
                {
                    ClassError objClassError = new ClassError();
                    objClassError.Err5();
                }
                for (int ansco = 1; ansco <= s; ansco++)
 
                    Ans_Grid.Columns[ansco - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            }
            else
            {
                ClassError objClassError = new ClassError();
                objClassError.Err3();
            }
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2018, 22:12
Ответы с готовыми решениями:

Цель - при нажатии на кнопку создать еще одну кнопку. Ошибка "Button" не содержит определения для "Location" и "Text""
int Control ; private void Button2_Click(object sender, RoutedEventArgs e) { ...

При нажатии на кнопку привет блокировать кнопку до свидания
Подскажите пожалуйста код. Нужно ( чтобы, при нажатии на кнопку привет блокировалась кнопка до свидания, но потом при нажатии на пустое...

Файл: Как сделать так, чтобы при нажатии на 1-ую кнопку считывалася 1-ая строка, при нажатии на 2 - 2 строка и т.д.
На форме размещено 30 кнопок. В файле .txt размещено 30 строк. Как сделать так чтобы при нажатий на 1 кнопку считувалася 1 строка, при...

2
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
01.06.2018, 22:28
Цитата Сообщение от faxezad Посмотреть сообщение
Если не внесены данные и нажать на кнопку =/-/*, то выдает ошибку "System.FormatException
Делайте проверку правильности ввода. Вот у Вас в первой же строке идет преобразование:
Цитата Сообщение от faxezad Посмотреть сообщение
C#
1
if (Convert.ToInt16(txt_Columns.Text) == Convert.ToInt16(txt_row2.Text))
. Там исключение и возникает.

Цитата Сообщение от faxezad Посмотреть сообщение
у меня есть messagebox на это
Не очень понятно при чем тут messagebox. Он, как бэ, ошибки не отлавливает и никак их не обрабатывает.

Цитата Сообщение от faxezad Посмотреть сообщение
Как это исправить
Правильнее всего перед первой строкой сделать проверку на правильность введенного текста. Либо же заключить участок с преобразованиями в блок try/catch.
Я бы сделал как то так:
C#
1
2
3
4
5
6
7
8
9
10
int i1, i2;
if (int.TryParse(textBox1.Text, out i1) && int.TryParse(textBox2.Text, out i2))
{
    //Все норм, выполняем код далее
}
else
{
    //Беда! Неверные данные
    MessageBox.Show("Error");
}
2
0 / 0 / 1
Регистрация: 19.02.2018
Сообщений: 26
01.06.2018, 22:37  [ТС]
О, спасибо Великий Гений!!!
P.S. Курсач сдавать завтра, а с этим еще давно запалили)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.06.2018, 22:37
Помогаю со студенческими работами здесь

При повторном нажатии на кнопку "Отправить" в приложении "клиент" выскакивает ошибка, что хост принудительно разорвал соединение
Всем привет. Ребят выручайте. Уже 4-й день бьюсь с программой. В общем, тренируюсь создавать клиентское и серверное приложения. За основу...

Событие при нажатии на кнопку
Пишу калькулятор. Как при нажатии на кнопку сохранить данные, которые ввели, и сохранить csv формате на компьтер и чтобы при новом...

При нажатии на кнопку Hotkey
Добрый день форумчане как сделать Hotkey к примеру нажать кнопку клавиатуру любую . и записывалась в текст. пост с отсюда...

Картинка при нажатии на кнопку
Как сделать чтобы при нажатии на кнопку появилась картинка, а при повторном нажатии, картинка закрылась?

Как при выборе определенного значения, сделать так, чтобы при нажатии на кнопку переходило на соответствующую
Существует 4 формы. На главной форме есть ComboBox и кнопка. В ComboBox 3 значения. Как при выборе определенного значения, сделать так,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru