Керування відображенням поточного часу в програмі. Приклад демонстрації компонента Timer

Керування відображенням поточного часу в програмі. Приклад демонстрації компонента Timer


Зміст


Теоретичні відомості

Інколи в додатках, що працюють в графічному інтерфейсі Windows, виникає необхідність відображення поточного часу (години:хвилини:секунди). Для реалізації цієї задачі в апаратурі комп’ютера передбачений доступ до таймеру.

Програмувальний таймер призначений для отримання програмно керованих часових затримок та генерації функцій, що задають час. Програмувальний таймер дозволяє формувати задані інтервали часу незалежно від швидкодії обчислювальної системи. Операційна система Windows викликає переривання від таймера 18,2 рази на секунду.

Система Microsoft Visual Studio представляє для користувача елемент управління Timer, який забезпечує виконання переривання від таймера.

З допомогою компонента Timer можна організувати паралельне виконання різних процесів у програмі.

У даному прикладі показано як використати компонент Timer для виведення на формі поточного часу. Також показано як можна керувати таймером, зупиняючи та продовжуючи показ годинника.

 


Виконання

1. Створення проекту як Windows Forms Application в MS Visual Studio.

Завантажити MS Visual Studio. Приклад створення проекту за шаблоном Windows Forms Application наведено тут.

 

2. Створення основної форми

Створити форму, як показано на рисунку 1.

Розмістити на формі такі компоненти:

  • компонент типу Label. Створюється об’єкт (екземпляр класу) з іменем label1;
  • два компоненти типу Button. Створюється два об’єкти з іменами button1 та button2;
  • компонент типу TTimer (рисунок 1). Створюється об’єкт з іменем timer1.

C# Windows Forms елемент управління Timer форма

Рис. 1. Розміщення елементу управління типу Timer та інших елементів управління на формі

 

3. Налаштування компонентів типу Label та Button

Налаштувати такі властивості компонент Label та Button:

  • в елементі управління label1 властивість Text = ““;
  • в елементі управління button1 властивість Text = “Go“;
  • в елементі управління button2 властивість Text = “Stop“.

Коли користувач зробить клік на кнопці button1 (початок відліку), годинник реального часу буде включений. При кліку на кнопці button2 час буде зупинено.

Після налаштування елементів управління форма буде мати вигляд як показано на рисунку 2.

C# Windows Forms Форма програми

Рис. 2. Форма програми після налаштування елементів управління

 

4. Налаштування компоненту типу Timer

У компоненті Timer властивість Interval встановити в значення 100 (рис. 3) або в будь-яке інше значення. Значення Interval вимірюється в мілісекундах. Interval задає частоту виклику обробника події, тобто частоту зміни значення годинника реального часу.

C# Windows Forms Властивість Interval елементу управління Timer

Рис. 3. Властивість Interval елементу управління Timer

 

5. Програмування обробника події Tick

В обробник події Tick вписується власний програмний код, що відображає годинник реального часу.

Лістинг обробника timer1_Tick() події Tick наступний:

private void timer1_Tick(object sender, EventArgs e)
{
  label1.Text = DateTime.Now.ToString();
}

У вищенаведеному коді використано можливості класу DateTime, який має засоби для відображення поточного часу.



 

6. Програмування подій кліку на кнопках button1 та button2

Для того, щоб час почав відображатись потрібно активізувати таймер. Для активації/деактивації таймера в елементі управління Timer використовується властивість Enabled.

Обробник події кліку на кнопці button1 має вигляд:

private void button1_Click(object sender, EventArgs e)
{
  timer1.Enabled = true;
}

Щоб зупинити таймер, потрібно властивість Enabled елементу управління Timer встановити в значення false.

private void button2_Click(object sender, EventArgs e)
{
  timer1.Enabled = false;
}

 

7. Запуск програми на виконання

Після запуску програми на виконання вікно форми матиме вигляд як зображено на рисунку 4.

C# Windows Forms елемент управління TimerРис. 4. Програма в режимі виконання

Якщо в програмі потрібно постійно відображати поточний час, тоді рядок

timer1.Enabled = true;

можна розмістити на початку завантаження форми (в конструкторі або в обробнику події Load).