Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 03.07.2023
Сообщений: 10

Не могу понять, почему второе условие останавливает таймер, а первое нет

03.07.2023, 23:18. Показов 541. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, вот хоть убейте не могу понять, почему второе условие останавливает таймер, а первое нет, если выполняется первое условие, выводит MessageBox около 50ти раз
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
private void RefreshTimer_Tick(object sender, EventArgs e)
        {
           LabelHPMob1.Text = "ХП : " + Properties.Settings.Default.FirstMobHP.ToString();
           LabelDMGMob1.Text = "Урон : " + Properties.Settings.Default.FirstMobDMG.ToString();
           LabelPlayerHP.Text = "Ваше ХП  : " + Properties.Settings.Default.PlayerHP.ToString();
           LabelPlayerDMG.Text = "Ваш Урон  : " + Properties.Settings.Default.PlayerDMG.ToString();
 
           
 
            if (Properties.Settings.Default.PlayerHP <= 0)
            {
                MessageBox.Show("Вы проиграли! Приходите, когда станете сильнее...");
                RefreshTimer.Enabled = false;
                BattleMob1.Enabled = false;
                
            }
 
           else if (Properties.Settings.Default.FirstMobHP <= 0)
            {
 
                RefreshTimer.Enabled = false; 
                BattleMob1.Enabled = false;
 
            }
Так же второй таймер.
C#
1
2
3
4
 private void BattleMob1_Tick(object sender, EventArgs e)
        {
            Properties.Settings.Default.PlayerHP -= Properties.Settings.Default.FirstMobDMG;
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.07.2023, 23:18
Ответы с готовыми решениями:

Создал меню: первое условие работает, второе - нет
Первый кейс работает хорошо. 2й не выводит сообщение с результатом. Что я не так сделал? И сможете показать как выполнять дальше? Или хотя...

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

Не срабатывает условие в цикле while не могу понять почему
При решении задачки в которой необходимо сделать игру Однорукий Бандит, наткнулся при тестировании что одно из условий цикла while не...

5
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,564
03.07.2023, 23:27
Цитата Сообщение от Identifico Посмотреть сообщение
выводит MessageBox около 50ти раз
Видимо, что-то происходит ещё с этим таймером.
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,099
03.07.2023, 23:52
Цитата Сообщение от Identifico Посмотреть сообщение
если выполняется первое условие, выводит MessageBox около 50ти раз
останавливайте таймер перед выводом сообщения
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void RefreshTimer_Tick(object sender, EventArgs e)
        {
           LabelHPMob1.Text = "ХП : " + Properties.Settings.Default.FirstMobHP.ToString();
           LabelDMGMob1.Text = "Урон : " + Properties.Settings.Default.FirstMobDMG.ToString();
           LabelPlayerHP.Text = "Ваше ХП  : " + Properties.Settings.Default.PlayerHP.ToString();
           LabelPlayerDMG.Text = "Ваш Урон  : " + Properties.Settings.Default.PlayerDMG.ToString();
  
            if (Properties.Settings.Default.PlayerHP <= 0)
            {
                RefreshTimer.Enabled = false;
                BattleMob1.Enabled = false;
                MessageBox.Show("Вы проиграли! Приходите, когда станете сильнее...");
                
            }
 
           else if (Properties.Settings.Default.FirstMobHP <= 0)
            {
 
                RefreshTimer.Enabled = false; 
                BattleMob1.Enabled = false;
 
            }
1
0 / 0 / 0
Регистрация: 03.07.2023
Сообщений: 10
04.07.2023, 00:02  [ТС]
Спасибо большое, помогло, но вопрос, почему так происходило? Разве он не должен был вывести MessageBox 1 раз и остановиться, даже если бы вывод текста был бы сначала?
nedel
0
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,564
04.07.2023, 00:06
Identifico, MessageBox.Show блокирует выполнение пока не будет закрыто окно сообщения. Но таймер работает в своём потоке, поэтому он продолжает генерировать события.
1
04.07.2023, 09:37

Не по теме:

Цитата Сообщение от Identifico Посмотреть сообщение
C#
1
LabelHPMob1.Text = "ХП : " + Properties.Settings.Default.FirstMobHP.ToString();
Хранить НР в настройках -- это прям сильно. Гляньте этот коментарий что-ли.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.07.2023, 09:37
Помогаю со студенческими работами здесь

не могу понять почему нет пинга
не могу понять почему не пингуются пк0 и пк3

Не могу понять почему в потоке нет тормозов
while work do begin for I := 0 to Form1.mmowords.Lines.Count-1 do begin resdom:=...

Не могу понять, почему-то нет фотографий в стандартном каталоге
В стандартном каталоге DCIM камера их почему-то нет.,Общарил все настройки через свойства и не нашёл ровным счётом ничего , пробовал...

Не могу понять, почему нет стабильного FPS на моём железе
Собственно не могу понять, топовое железо на момент 2004-2005 года. Мать: P4C800-E Deluxe S478 CPU: Pentium 4 Prescott 3.0...

Если первое число больше второго то первое число поделить на второе иначе второе поделить на первое .
Даны два числа заданных с клавиатуры и не равных 0. Если первое число больше второго то первое число поделить на второе иначе второе...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений в EXE. Здесь описаны базовые шаги для старта программирования с помощью CMake и MinGW. Для набора. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru