Таймер: с 19.00 до 20.00 с периодом в 5 минут открывать новую форму - C#
Формулировка задачи:
Здравствуйте.
Проблема следующая:
Необходимо в определенный период времени , скажем с 19.00 до 20.00 с периодами в 5 минут открывать новую форму с каким либо содержимым.
Объявил форму
Создал два таймера
При инициализации формы (Form1) запускаю первый таймер
Проблемы две
Во - первых, иногда вообще не работает, но если начинаешь отладку то в принципе все работает по коду бегает и прыгает на метод Messege.
Во - вторых, форма Form2 выходит многократно
То что написано 5 минут а в коде 10сек не обращайте внимания.
Помогите кто чем может.
Сделал так теперь в первый раз выходит два окна далее по одному. Т.е. как только наступило 19.00 через 10 сек выходит две формы одинаковые (Form2). После их закрытия по истечению 10 сек по одному
Form2 Window;
//Таймер System.Timers.Timer timeSearch = new System.Timers.Timer(); //Таймер2 для отчета интервала System.Timers.Timer timeInterval = new System.Timers.Timer();
//Таймер активируем и событие привязываем timeSearch.Start(); timeSearch.Elapsed += new System.Timers.ElapsedEventHandler(this.Interval); private void Interval(object sender, System.Timers.ElapsedEventArgs e) { if ((item.StartDate <= DateTime.Now) && (item.EndDate >= DateTime.Now)) { bool count = false; foreach (Form form in Application.OpenForms) { if (form.Name=="Form2") { count = true; } } if (!count) { timeInterval.Start(); //timeInterval.Interval = item._notifiInterval; timeInterval.Interval = 10000; timeInterval.Elapsed += new System.Timers.ElapsedEventHandler(this.Messege); } } } private void Messege(object sender, System.Timers.ElapsedEventArgs e) { Window = new Form2(calendar1, item, locationPlay); Window.ShowDialog(); if (item._notifiYesNo == false) { timeInterval.Stop(); } }
private void Messege(object sender, System.Timers.ElapsedEventArgs e) { bool count = false; foreach (Form form in Application.OpenForms) { if (form.Name=="Form2") { count = true; } } if (!count) { Window = new Form2(calendar1, item, locationPlay); Window.ShowDialog(); if (item._notifiYesNo == false) { timeInterval.Stop(); } } }
Будут вопросы по коду поясню)
Решение задачи: «Таймер: с 19.00 до 20.00 с периодом в 5 минут открывать новую форму»
textual
Листинг программы
private void Messege(object sender, System.Timers.ElapsedEventArgs e) { timeInterval.Stop(); CalendarItem item = Buffer.notifiItem; Window = new Form2(calendar1, item, locationPlay); Window.ShowDialog(); timeInterval.Start(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д