Таймер. Работа с таймером в C#
Доброго времени суток! В этой статье я расскажу об использовании таймера в программах, написанных на C#, а в конце мы напишем простейшую программу часы. Статья будет практического характера и для её понимания Вам нужно владеть начальными знаниями программирования на языке C# и работы с WindowsForms приложениями. Но сначала, я расскажу для чего же нужны таймеры в программах. Чаще всего, таймеры используют для периодического вызова определенного метода (подпрограммы). У компонента «Timer» есть специальное (и единственное событие) — «Tick». Вот обработчик этого события, далее обработчик таймера, и вызывается с заданной программистом периодичностью.
Как я уже сказал, рассказ о таймерах будет в контексте WindowsForms. Так что я предлагаю создать новый проект приложения с графическим интерфейсом (WindowsForms). После чего, на главную форму из панели инструментов перенести компонент «Timer». Расположение компонента «Timer» в панели инструментов показано на рисунке ниже.
Данный компонент не является видимым на форме, поэтому, в дизайнере форм Вы его не увидите, но он будет в неком контейнере по формой, как показано на рисунке ниже.
И если выбрать данный компонент в дизайнере форм, то можно увидеть его свойства, которых не так много — всего шесть. Я расскажу о самых важных, которые мы будем использовать. А сейчас, давайте посмотрим на свойства таймера (см. рисунок ниже).
- Свойство «Name» задает название таймера (скорее даже его уникальное имя, так как на форме может быть не один такой компонент);
- Свойство «Eneble» делает таймер доступным (если установлено в true) или наоборот — недоступным (если установлено в false);
- Свойство «Interavl» задает интервал, через который будет периодически вызываться обработчик таймера.
Так же у компонента «Timer» есть два интересующих нас метода:
- Start — запускает таймер (после вызова этого метода, будет периодически «срабатывать» обработчик таймера);
- Stop — останавливает таймер (после вызова этого метода, обработчик таймера перестанет «срабатывать» ).
А вот и то самое событие «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("Текущее время: {0}", DateTime.Now.ToString("HH:mm:ss")); }
Всё довольно просто! А вот так будет выглядеть запущенная программа после нажатия на кнопку «Старт».
Конец!
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.