'C sharp'에 해당되는 글 1건

  1. 2021.01.12 C# TIMER 이용해서 타이머 만들기

TIMER 만들기

public partial class Form1 : Form
{
    private int second;
    private int minute;
    private int start;
    private int stop;

    public Form1()
    {
        InitializeComponent();

        //프로그램 실행시 타이머 미작동
        timer1.Enabled = false;

        //초기화
        second = 0;
        minute = 0;
        start = 0;
        stop = 0;

        //프로그램 실행시 "00" 입력
        lb_sec.Items.Add("00");
        lb_min.Items.Add("00");
        lb_col.Items.Add(":");

    }

    private void btn_start_Click(object sender, EventArgs e)
    {


        //시작시 초기화
        timer1.Enabled = false;
        //처음일때만 분, 초에 "00" 제거
        if (start == 0)
        {
            lb_sec.Items.Remove("00");
            lb_min.Items.Remove("00");
            lb_col.Items.Remove(":");
        }
        //그외에는 시간 제거
        else 
        {
            lb_sec.Items.Remove(second);
            lb_min.Items.Remove(minute);
            lb_col.Items.Remove(":");
        }

        //입력
        try
        {
            minute = Int32.Parse(tb_input.Text);
            start = 0;
            stop = 0;
            lb_sec.Items.Add("00");
            lb_min.Items.Add(minute);
            lb_col.Items.Add(":");
            timer1.Enabled = true;
        }
        catch (Exception ex)
        {
            MessageBox.Show("잘못 입력하였습니다. 다시 입력하세요");
        }

    }

    private void btn_stop_Click(object sender, EventArgs e)
    {
        //정지
        if (stop == 0)
        {
            timer1.Enabled = false;
            stop = 1;
            return;
        }
        //다시 시작
        if (stop == 1)
        {
            timer1.Enabled = true;
            stop = 0;
            return;
        }

    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        //처음 시작시
        if (start == 0)
        {
            lb_min.Items.Remove(minute);
            minute--;
            lb_min.Items.Add(minute);

            lb_sec.Items.Remove("00");
            second = 60;
            second--;
            lb_sec.Items.Add(second);

            lb_col.Items.Remove(":");
            start++;
        }
        //그 외
        else 
        {
            if (second == 60)
            {
                lb_sec.Items.Remove("00");
            }
            else
            {
                lb_sec.Items.Remove(second);
            }
            second--;

            if (second == 59)
            {
                lb_min.Items.Remove(minute);
                minute--;
                lb_min.Items.Add(minute);
            }

            //2초에 한번씩 ":" 깜박임
            if (second % 2 == 1)
            {
                lb_col.Items.Remove(":");
            }
            else
            {
                lb_col.Items.Add(":");
            }

            if (second == 0 && minute == 0)
            {
                timer1.Enabled = false;
                lb_sec.Items.Add(second);
                MessageBox.Show("완료되었습니다.");
                return;
            }

            if (second == 0)
            {
                lb_sec.Items.Add("00");
                second = 60;
            }
            else
            {
                lb_sec.Items.Add(second);
            }
        }

    }
}

참고
https://makemethink.tistory.com/127

Posted by agape93
,