Разбираем создание таймера на языке программирования C# в приложении Windows Forms. Полный исходный код с подробными комментариями можно будет скачать внизу страницы.
Для начала в Windows Forms создаём внешнюю оболочку программы. У нас она выглядит вот так:
Здесь у нас 8 Label’ов, 3 TextBox’a, 3 Buttom’a и сам Timer.
Примечание: при переносе элемента Timer в форму, на неё ничего не появляется. Лишь в нижней части окна программы под формой появляется значок , не пугайтесь.
Щёлкнем на значок таймера и в окне «Свойства» в группе «Поведение» устанавливаем значение параметра Interval равным 1000. Данный параметр определяет длину тика таймера в миллисекундах, указав 1000, мы сделали один тик равным одной секунде.
После оформления и настройки приступаем к коду. Вводим целочисленные переменные h — часы, m- минуты, s — секунды.
Затем дважды щёлкаем мышью на кнопке «Старт» и переходим на участок кода, отвечающий за клик на эту кнопку.
Туда мы пишем следующий код:
1 2 3 4 5 |
h = Convert.ToInt32(textBox1.Text); m = Convert.ToInt32(textBox2.Text); s = Convert.ToInt32(textBox3.Text); timer1.Start(); |
То есть мы считываем с TextBox’ов данные, которые ввёл туда пользователь, и после этого включаем таймер. Время пошло.
Также нам надо настроить счёт времени самого таймера. Для этого дважды кликаем на элементе и внутри тела кода, в который нас отправило, пишем:
1 2 3 4 5 6 7 8 |
private void timer1_Tick(object sender, EventArgs e) { s = s - 1; if (s == -1) { m = m - 1; s = 59; } |
Здесь мы настраиваем таймер таким образом, чтобы каждую секунду переменная s уменьшалась на единицу. Если s становится меньше нуля, значит прошла минута, следовательно, m должна уменьшаться на единицу, а отсчёт с секундами s снова начнётся с 59.
То же самое мы делаем с часами и минутами:
1 2 3 4 5 |
if (m==-1) { h = h - 1; m = 59; } |
Теперь позаботимся о том, что случится, когда время, указанное пользователем, выйдет:
1 2 3 4 5 |
if (h==0 && m==0 && s==0) { timer1.Stop(); MessageBox.Show("Время вышло!"); } |
Как только часы, минуты и секунды будут вместе ровняться нулю, мы выведем пользователю окно с предупреждением об этом.
А чтобы пользователь мог видеть, как идёт время, и как отсчитываются часы, минуты и секунды, мы вынесем всё вышепроисходящее на экран при помощи label’ов:
1 2 3 |
label1.Text = Convert.ToString(h); label3.Text = Convert.ToString(m); label5.Text = Convert.ToString(s); |
Теперь надо разобраться с кнопками «Стоп» и «Сброс». В первом случае при нажатии на кнопку пользователем, таймер просто останавливается и может быть возобновлён после нажатия на кнопку «Старт». При нажатии на вторую кнопку счётчики сбрасываются и при нажатии на «Старт», отчёт начнётся заново.
Код кнопки «Стоп»:
1 2 3 4 |
private void button2_Click(object sender, EventArgs e) { timer1.Stop(); } |
Тут всё просто и понятно.
В кнопке «Сброс» нам надо помимо остановки сбросить значения переменных до нулей:
1 2 3 4 5 6 7 |
private void button3_Click(object sender, EventArgs e) { timer1.Stop(); label1.Text = "0"; label3.Text = "0"; label5.Text = "0"; } |
Программа готова. Таймер на C#:
Скачать исходник
Поделиться в соц. сетях:
Благодарю за урок!
Большая БЛАГОДАРНОСТЬ за урок и пояснения.
Спасибо огромное!