Таймер. Робота з таймером в C #
Доброго часу доби! У цій статті я розповім про використання таймера в програмах, написаних на C #, а в кінці ми напишемо просту програму годинник. Стаття буде практичного характеру і для її розуміння Вам потрібно володіти початковими знаннями програмування на мові C # і роботи з WindowsForms додатками. Але спочатку, я розповім для чого ж потрібні таймери в програмах. Найчастіше, таймери використовують для періодичного виклику певного методу (підпрограми). У компонента «Timer» є спеціальне (і єдина подія) - «Tick». Ось обробник цієї події, далі обробник таймера, і викликається із заданою програмістом періодичністю.
Як я вже сказав, розповідь про таймерах буде в контексті WindowsForms. Так що я пропоную створити новий проект програми з графічним інтерфейсом (WindowsForms). Після чого, на головну форму з панелі інструментів перенести компонент «Timer». Розташування компонента «Timer» в панелі інструментів показано на малюнку нижче.
компонент Timer
Даний компонент не є видимим на формі, тому, в дизайнера форм Ви його не побачите, але він буде в якомусь контейнері по формою, як показано на малюнку нижче.
Компонент Timer в дизайнера (під формою)
І якщо вибрати дану компонент в дизайнера форм, то можна побачити його властивості, яких не так багато - всього шість. Я розповім про найважливіші, які ми будемо використовувати. А зараз, давайте подивимося на властивості таймера (див. Малюнок нижче).
Властивості компонента Timer
- Властивість «Name» задає назву таймера (скоріше навіть його унікальне ім'я, так як на формі може бути не один такий компонент);
- Властивість «Eneble» робить таймер доступним (якщо встановлено в true) або навпаки - недоступним (якщо встановлено в false);
- Властивість «Interavl» задає інтервал, через який буде періодично викликатися обробник таймера.
Так само у компонента «Timer» є два цікавлять нас методу:
- Start - запускає таймер (після виклику цього методу, буде періодично «спрацьовувати» обробник таймера);
- Stop - зупиняє таймер (після виклику цього методу, обробник таймера перестане «спрацьовувати»).
А ось і той самий подія «Tick»:
Подія (Tick) таймера
А тепер, давайте приступимо до практики. Для наочності, я вирішив написати програму годинник. Звичайно, повноцінними годинами цю програму назвати не можна, але вона буде показувати час. Причому, не завжди, а тільки коли ми запустимо таймер, який буде «спрацьовувати» раз в секунду, і виводити поточний час в напис на формі. Для запуску і зупинки таймера будуть використовуватися дві кнопки.
Після того як я переніс всі необхідні елементи на головну форму, вона стала виглядати так, як показано на малюнку нижче.
Головне вікно програми
Як бачите, програма максимально проста: дві кнопки, так текстова напис. А тепер, давайте перейдемо до коду. Я створив обробники подій кліка для кожної копки і події «Tick» таймера. Код наведено нижче:
// Оброблювач натискання на кнопку "Старт" private void StartBtn_Click (object sender, EventArgs e) {// Робимо таймер доступним MainTimer.Enabled = true; // Запускаємо таймер MainTimer.Start (); } // Оброблювач натискання на кнопку "Стоп" private void StopBtn_Click (object sender, EventArgs e) {// Зупиняємо таймер MainTimer.Stop (); // Знову робимо таймер недоступним MainTimer.Enabled = false; // "Скидаємо" текст напису в початковий стан TimeLbl.Text = "Сьогодні:"; } // Оброблювач таймера (викликається із заданою періодичністю) private void MainTimer_Tick (object sender, EventArgs e) {// Раз в секунду буде виводитися такий текст (з поточним часом) TimeLbl.Text = string.Format ( "Часовий пояс GMT {0 } ", DateTime.Now.ToString (" HH: mm: ss ")); }Все досить просто! А ось так буде виглядати запущена програма після натискання на кнопку «Старт».
Програма з таймером
Кінець!