C# 강좌 : 제 8강 - Timer

C# Using Timer

C# 강좌 : 제 8강 - Timer
[ C# ] - 윤대희

프로젝트 구성


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;
        }
    }
}


Book Image

개정판이 출간됐습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍 (개정판)

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


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