Управление отображением текущего времени в программе. Пример демонстрации компонента Timer

Управление отображением текущего времени в программе. Пример демонстрации компонента Timer


Содержание


Теоретические сведения

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

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

Система Microsoft Visual Studio представляет для пользователя элемент управления Timer, реализующий выполнение прерывания от таймера.

Также с помощью компонента Timer можно организовать параллельное выполнение различных процессов в программе.

В данном примере показано, как использовать компонент Timer для вывода на форме текущего времени. Также показано как можно управлять таймером, останавливая и продолжая показ текущего времени.

 


Выполнение

1. Создание проекта по шаблону Windows Forms Application.

Запустить MS Visual Studio. Создать проект по шаблону Windows Forms Application. Подробный пример создания проекта по шаблону 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 Программа в режиме выполненияРис. 4. Программа в режиме выполнения

Если в программе нужно постоянно отображать текущее время, тогда строку

timer1.Enabled = true;

можно разместить в начале загрузки формы (в конструкторе или в обработчике события Load).