C# 강좌 : 제 8강 - Timer

   

프로젝트 구성

1 도구상자에서 Timer, TextBox, Button, Label, ProgressBarForm1에 생성합니다. 위의 이미지와 같이 배치합니다.

2 속성을 다음과 같이 설정합니다.

  1. Button (1번)

    • Text : Send
  2. Button (2번)

    • Text : Reset
  3. Label (1번)

    • Text : 현재시간
  4. Label (2번)

    • Text : 0

timer1을 더블클릭하여 이벤트를 활성화시킵니다.

private void timer1_Tick(object sender, EventArgs e)
{
    if (progressBar1.Value >= progressBar1.Maximum) return;
    progressBar1.Value += 1;
    label1.Text = DateTime.Now.ToLongTimeString();
    label2.Text = Convert.ToString(progressBar1.Value);
}
if (progressBar1.Value >= progressBar1.Maximum) return;

progressBar의 값이 설정된 최댓값 보다 클 경우 return하여 아래의 명령문을 실행시키지 않게합니다.

  • Tip : 최대값을 넘겨서 값이 누적될 경우 프로그램의 오류를 발생시킵니다.


progressBar1.Value += 1;

그 후, progressBar의 값을 1씩 누적하여 증가시킵니다.

label1.Text = DateTime.Now.ToLongTimeString();
label2.Text = Convert.ToString(progressBar1.Value);

label1에 현재 시간을 띄웁니다. label2에는 progressBar의 값을 표시합니다.

  • Tip : DateTime.Now.ToLongTimeString()는 현재 시간을 표시해줍니다.

Button1을 더블클릭하여 이벤트를 활성화 시킵니다.

private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "") return;
    timer1.Interval = Convert.ToInt32(textBox1.Text);
    timer1.Enabled = true;
}
if (textBox1.Text == "") return;

이 구문 또한 위처럼 null값일 경우 아래의 명령문을 실행시키지 않게합니다.

timer1.Interval = Convert.ToInt32(textBox1.Text);
timer1.Enabled = true;

timer1의 이벤트의 빈도를 설정합니다. 단위는 밀리초입니다. 빈도를 설정 후에 타이머를 사용가능하게 바꿔줍니다.

  • Tip : Timer는 지정된 시간마다 timer 이벤트 안의 명령문을 반복해 실행시킵니다.

다음은 Button2를 더블클릭하여 이벤트를 활성화시킵니다.

private void button2_Click(object sender, EventArgs e)
{
    timer1.Interval = 100;
    timer1.Enabled = false;
    progressBar1.Value = 0;
}

timer1의 빈도를 초기값인 100으로 초기화 시키고, 사용가능하지 않게 만듭니다. 또한 progressBar의 값을 0으로 바꿔줍니다.

3

다음과 같이 프로그램이 실행되게 됩니다.

코드

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (progressBar1.Value >= progressBar1.Maximum) return;
            progressBar1.Value += 1;
            label1.Text = DateTime.Now.ToLongTimeString();
            label2.Text = Convert.ToString(progressBar1.Value);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "") return;
            timer1.Interval = Convert.ToInt32(textBox1.Text);
            timer1.Enabled = true;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Interval = 100;
            timer1.Enabled = false;
            progressBar1.Value = 0;
        }
    }
}


도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post C# 강좌 : 제 9강 - 데이터 형식 ⤧  Previous post C# 강좌 : 제 7강 - SaveFileDialog & OpenFileDialog