Остановка таймера при отображении диалога - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Подскажите, хочу написать свой таймер, который будет служить в качестве часов. При создании экземпляра окна создается сам таймер. Ниже приведу его код. Вопрос в том, если будет выведено диалоговое окно, то таймер остановится, или продолжит свою работу? Мне нужно, чтобы таймер останавливался при открытии диалогового окна, а при закрытии диалогового окна - продолжал работу.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows.Forms;
  7. namespace Test
  8. {
  9. public class Time
  10. {
  11. public static string Day
  12. {
  13. get
  14. {
  15. string rc = "";
  16. switch (d)
  17. {
  18. case 0: rc = "Понедельник"; break;
  19. case 1: rc = "Вторник"; break;
  20. case 2: rc = "Среда"; break;
  21. case 3: rc = "Четверг"; break;
  22. case 4: rc = "Пятница"; break;
  23. case 5: rc = "Суббота"; break;
  24. case 6: rc = "Воскресенье"; break;
  25. }
  26. return rc;
  27. }
  28. }
  29. public static string Hours
  30. {
  31. get
  32. {
  33. string hours = Convert.ToString(h);
  34. if (hours.Length == 1) hours = hours.Insert(0, "0");
  35. return hours;
  36. }
  37. }
  38. public static string Minutes
  39. {
  40. get
  41. {
  42. string minutes = Convert.ToString(m);
  43. if (minutes.Length == 1) minutes = minutes.Insert(0, "0");
  44. return minutes;
  45. }
  46. }
  47. static short d; // day [0;7)
  48. static short h; // hours [0,24)
  49. static short m; // minutes [0,60)
  50. static Timer timer = new Timer();
  51. public Time()
  52. {
  53. h = 0;
  54. m = 0;
  55. timer.Interval = 100;
  56. timer.Tick += Timer_Tick;
  57. timer.Start();
  58. }
  59. private static void Timer_Tick(object sender, EventArgs e)
  60. {
  61. if (++m == 60)
  62. {
  63. m = 0;
  64. if (++h == 24)
  65. {
  66. h = 0;
  67. if (++d == 7) d = 0;
  68. }
  69. }
  70. }
  71. public static void Stop() => timer.Stop();
  72. public static void Start() => timer.Start();
  73. public static string GetDay() => Day;
  74. public static string GetHours() => Hours;
  75. public static string GetMinutes() => Minutes;
  76. public static string GetTime() => ($"{Hours}:{Minutes}");
  77. public override string ToString() => (Day + ", " + GetTime());
  78. }
  79. }

Решение задачи: «Остановка таймера при отображении диалога»

textual
Листинг программы
  1.         void StopTimerAndShowForm(Form form)
  2.         {
  3.             tm.Stop();
  4.             form.ShowDialog(this);
  5.             tm.Start();
  6.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы