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

Остановка выполнения программы исключением

04.04.2017, 09:17. Показов 2412. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Подскажите, столкнулся с проблемой, написал класс проверки textbox на пустоту:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Check
    {
        public static void cH(Control.ControlCollection controls)
        {
            string caption,_msg;
            _msg = "Введите данные!";
            caption = "Мудак";
            MessageBoxButtons _btn = MessageBoxButtons.OK;
            MessageBoxIcon icon = MessageBoxIcon.Warning;
            DialogResult result;
            foreach (TextBox tb in controls.OfType<TextBox>())
                if (string.IsNullOrEmpty(tb.Text))
                {
                    result = MessageBox.Show(_msg, caption, _btn, icon);
                    return;
                }
        }
    }
Вызываю метод по кнопке
C#
1
2
3
4
private void btnEval_Click(object sender, EventArgs e)
        {
            Check.cH(this.Controls);
        }
Все работает, только после закрытия модального окна программа не выполняет return, а просто ссылается на необработанное исключение последующего кода.
Как исправить? Заранее спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2017, 09:17
Ответы с готовыми решениями:

Остановка программы, после выполнения условия
Всем доброго времени суток!! Есть такой код программы: for (i = 0; i &lt; 3; i++) { for (j = 0; j &lt; 3;...

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

Время выполнения программы
Подскажите пожалуйста как на C# определить за какое время выполнилась программа... функция какая нибудь есть? типо clock() в си

10
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
04.04.2017, 09:52
А какое исключение? Для проверки значений существует событие Validating.
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
04.04.2017, 09:55  [ТС]
Доброго утра ) снова Вы выручаете
при выполнении программы, если textbox пуст, выходит сообщение "Введите данные!" после нажатия ОК программа не останавливается с возвратом на форму, где необходимо заполнить текстбокс, а продолжает свое выполнение, следовательно лезут ошибки (т.к. текстбокс пуст!)
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
04.04.2017, 10:06
Цитата Сообщение от _Faradey Посмотреть сообщение
программа не останавливается с возвратом на форму, где необходимо заполнить текстбокс
А где в коде у тебя записано, что она должна остановиться?
0
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
04.04.2017, 10:10  [ТС]
Думал, что на 15-й строчке остановится... но...
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
04.04.2017, 10:11
_Faradey, это просто выход из метода. Больше ничего
0
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
04.04.2017, 10:25  [ТС]
Я уже это понял, как тогда лучше сделать? Мне кажется в обработчике кнопки надо химичить, но...
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
04.04.2017, 10:38
Лучший ответ Сообщение было отмечено _Faradey как решение

Решение

Цитата Сообщение от _Faradey Посмотреть сообщение
как тогда лучше сделать?
Если твой метод, что-то проверяет, то он должен сообщать о результатах проверки. Например, так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Check
    {
        public static bool cH(Control.ControlCollection controls)
        {
            string caption,_msg;
            _msg = "Введите данные!";
            caption = "Мудак";
            MessageBoxButtons _btn = MessageBoxButtons.OK;
            MessageBoxIcon icon = MessageBoxIcon.Warning;
            DialogResult result;
            foreach (TextBox tb in controls.OfType<TextBox>())
                if (string.IsNullOrEmpty(tb.Text))
                {
                    result = MessageBox.Show(_msg, caption, _btn, icon);
                    return false;
                }
            return true;
        }
    }
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
04.04.2017, 10:55  [ТС]
тот же эффект (
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
04.04.2017, 10:58
Цитата Сообщение от _Faradey Посмотреть сообщение
тот же эффект (
Проблема у тебя не в этом методе, а во внешнем коде. Если ты вызываешь метод, который что-то возвращает (теперь), то это возвращаемое значение нужно проверить и принимать дальнейшие действия. Например, если метод вернул false, то нужно завершить программу и выключить компьютер. А если true, то перевести на счёт пользователя $10.
А ты проверяешь возвращаемое методом значение?
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
04.04.2017, 11:19  [ТС]
Проблема была немного в другом, разобрался. Спасибо Вам огромное!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.04.2017, 11:19
Помогаю со студенческими работами здесь

Отображения данных во время выполнения программы
Добрый день, помогите написать программу. Есть какие-то способ для отображения данных например в лейбла во время выполнения программы с...

Вызов .dll во время выполнения программы
При вызове неуправляемого кода из управляемого, используется атрибут DllImport. В нем задается путь к файлу с библиотекой.Например ...

ProgressBar не показывает прогресс выполнения программы
Друзья, помогите разобраться с потоками! Сколько не мучаюсь, ничего не получается. Есть главная форма с textBox-ом, кнопкой и...

Как измерить время выполнения программы?
Как измерить время выполнения программы в MS Visual C++ 2008 Express Edition ? Если можно измерить ...

Ввод результатов выполнения программы в массив
Не могу ввести результаты в массив


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
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 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru