시간이 흐름에 따라 계속해서 값을 변경시켜줘야 하는 경우 Timer 클래스를 이용할 수 있다.
[그림 1]
Timer를 처음 생성하면 기본적으로 Enabled가 False로 되어있어 동작하지 않는다.
그렇기에 따로 Enabled속성을 true로 바꿔주어야 한다.
Timer엔 Tick이라는 EventHandler가 있다.
이 Tick을 이용해 실시간으로 이벤트를 발생시킬 수 있는것.
예를 들어 DateTime을 이용해 현재 시간을 실시간 출력하고자 할때
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | private void Form1_Load(object sender, EventArgs e) { string strMsg = String.Empty; strMsg = String.Format("{0}년\r\n{1}월\r\n{2}일\r\n" + "{3}시\r\n{4}분\r\n{5}초\r\n", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); this.textBox1.Text = strMsg; // 또는 아래와 같은 방식으로도 표현 할 수 있다. // StringBuilder 클래스 사용 <- 긴 문자열 처리할 때 System.Text.StringBuilder sb = new StringBuilder(); sb.Append("현재시간\r\n"); sb.Append(DateTime.Now.Year.ToString() + "년"); sb.AppendFormat("\r\n{0}월", DateTime.Now.Month); sb.AppendFormat("{0}{1}일 {2}", "\r\n", DateTime.Now.Day, "\r\n"); sb.AppendFormat("{0}시 {1}분 {2}초", DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); this.textBox1.Text = sb.ToString(); } private void timer1_Tick(object sender, EventArgs e) { this.Form1_Load(null, null); } | cs |
[코드 1]
[코드 1]을 보면 Form_Load 이벤트에서 DateTime의 형식을 지정해 textBox로 출력해준다.
그리고 Timer의 Tick 이벤트가 동작하면 Form_Load 이벤트를 동작시킨다.
Tick 이벤트는 Timer의 Interval 속성에 지정된 빈도값(밀리초)마다 동작한다. 1초는 1000밀리초다.
'IT > 윈도우 폼' 카테고리의 다른 글
[VS 2013] 스크롤바를 이용해 RGB값 변경하기 (0) | 2018.05.20 |
---|---|
[VS 2013] 라디오버튼과 체크박스 폼 (0) | 2018.05.18 |
[VS 2013] DateTimePicker로 시간 선택 및 표시 (0) | 2018.05.17 |
[VS 2013] 모달과 모달리스 (0) | 2018.01.30 |
[VS 2013] 그룹박스 내의 컨트롤 접근 (0) | 2017.08.02 |