Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
.NET 4.x

Код в таймере не работает

15.05.2018, 10:24. Показов 815. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Короче я вынес себе мозг. Пожалуйста не игнорьте.
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
private void tmrCheckAnswers_Tick(object sender, EventArgs e)
        {
            if (iCheckAnswer == 0)
            {
                switch (iWaitCheckAnswer)
                {
                    case 0: lblWaitCheckAnswers.Text = "Проверка"; iWaitCheckAnswer++; break;
                    case 1: lblWaitCheckAnswers.Text = "Проверка."; iWaitCheckAnswer++; break;
                    case 2: lblWaitCheckAnswers.Text = "Проверка.."; iWaitCheckAnswer++; break;
                    case 3: lblWaitCheckAnswers.Text = "Проверка..."; iWaitCheckAnswer = 0; break;
                }
 
                if (DelayWaitCheckAnswer > 0)
                    DelayWaitCheckAnswer--;
                else
                {
                    DelayWaitCheckAnswer = cDelayWaitCheckAnswer;
                    CheckAnswer(PublicData.MainRegAut.Login.listLogin[PublicData.SelectedIndexAutorisation].listQuestions[PublicData.SelectedIndexQuest].Select_Question);
                    tmrCheckAnswers.Stop();
                }
            }
            else if (iCheckAnswer == 1)
            {
                if (DelayClosePnlCheckAnswer > -1)
                {
                    lblCheckAnswers.Text = "Закрытие через " + DelayClosePnlCheckAnswer;
                    DelayClosePnlCheckAnswer--;
                }
                else
                {
                    pnlMaskCheckAnswers.Visible = false;
                    SetQuestion(PublicData.MainRegAut.Login.listLogin[PublicData.SelectedIndexAutorisation].listQuestions[PublicData.SelectedIndexQuest].Select_Question);
                    tmrCheckAnswers.Stop();
                }
            }
            else
            {
                MessageBox.Show(iCheckAnswer.ToString());
                tmrCheckAnswers.Stop();
            }
        }
 
void CheckAnswer(int idxQuestion)
        {
            if (PublicData.MainQuestions.qType == 0)
            {
                //Если квест является игровым
                var ListCheck = PublicData.MainQuestions.qQuestions[idxQuestion].Correct_Answer;
                var ListUserCheck = new List<bool>();
                var intPoints = 0;
                for (int i = 0; i < lbListChackAnswer.Items.Count; i++)
                {
                    ListUserCheck.Add((bool)lbListChackAnswer.GetItemChecked(i));
                    intPoints += PublicData.MainQuestions.qQuestions[idxQuestion].Plus_Points[i];
 
                }
 
                if (ListCheck.SequenceEqual(ListUserCheck))
                {
                    //Ответ совпадает
                    PublicData.MainRegAut.AddPoints(PublicData.SelectedIndexAutorisation, PublicData.SelectedIndexQuest, intPoints);
                    PublicData.MainRegAut.Login.listLogin[PublicData.SelectedIndexAutorisation].listQuestions[PublicData.SelectedIndexQuest].Select_Question++;
                    lblWaitCheckAnswers.Text = "Ответ правильный";
 
                    DelayClosePnlCheckAnswer = cDelayClosePnlCheckAnswer;
                    iCheckAnswer = 1;
                    tmrCheckAnswers.Tick += tmrCheckAnswers_Tick;
                    tmrCheckAnswers.Interval = 1000;
                    tmrCheckAnswers.Start();
                }
                else
                {
                    lblWaitCheckAnswers.Text = "Ответ неправильный\r\nИгра окончена";
 
                }
            }
 
        }
А проблема такая что при присвоении iCheckAnswer = 1;
Код в таймере который должен выполнятся на 1 не выполняется. Вместо него выполняется вот этот кусок
CheckAnswer(PublicData.MainRegAut.Login. listLogin[PublicData.SelectedIndexAutorisation].listQuestions[PublicData.SelectedIndexQuest].Select_Question);
tmrCheckAnswers.Stop();

Добавлено через 6 минут
Извините. Просьб модераторов удалить тму. Понял в чем ошибка. Блин ну вечно на таких мелачах запарываюсь и думую а почемуже неработает. Ведь функцию я вызываю до того как таймер отрубил. Правильно как функция заканчивается таймер отрубается не успев начаться новой анимации.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.05.2018, 10:24
Ответы с готовыми решениями:

Не работает перерисовка в таймере на image
Здравствуйте Не знаю в чем проблема но перерисовка не работает. Отрисовывает только 1 раз Вот код: procedure...

В таймере получаю html код,возникает ошибка 429
st.add(idhttp1.get('http://steamcommunity.com/market/search/render/?query=&amp;start=0&amp;count=10&amp;'+'search_descriptions=0&amp;sort_column=price&amp;sort_...

javax.swing.Timer не работает событие в таймере
Добрый день. Пытаюсь написать свой таймер. нот почему-то объект класса таймер не работает, подскажите что не так? import...

3
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,433
15.05.2018, 14:45
Alexandr_7, научитесь уже отладчиком пользоваться, чтобы такие темы не создавать.
1
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
17.05.2018, 10:51  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Alexandr_7, научитесь уже отладчиком пользоваться, чтобы такие темы не создавать.
Я немного подзабыл что в отладчике в отличие отладчика Delphi кнопки для прохода по задачам f10 вместо f8
А вообще я им и так пользуюсь но нажимать сотню раз f5 не вариант чтобы в таймере узнать значение переменной на 2 вхождение.
0
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,433
17.05.2018, 11:16
Alexandr_7, точки останова могут иметь условия срабатывания. Точки останова могут выполнять какие-то действия (например писать значение какой-то переменной в окно вывода) и не прерывать работу приложения. Отладчик в Visual Studio очень богатый на возможности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.05.2018, 11:16
Помогаю со студенческими работами здесь

После закрытия приложения пользователем код в таймере продолжает выполняться
Если запустить таймер в android с периодом в пять секунд выполнения действия и в функции run() накодить какой то процесс. То после закрытия...

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт ошибку. ...

Написал код в Full Debug, потом переделал в Release - и написанный код не работает
Кто сталкивался с проблемой, написал код в Full Debug потом переделал в Release и написанный код не работает (((

Код выполняемый из студии с пометкой debag, работает не так как уже компилированный код
Здравствуйте, столкнулся с такой проблемой. Код выполняемый из студии с пометкой debag, работает не так как уже компилированный код....

DirectX 9.0 Ищу нормальный рабочий код для вывода текста. В книгах код не работает!
Подскажите нормальный рабочий код для вывода текста на экран. Сложность в том, что при разных версиях DirectX разные коды. В интернете...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru