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