반응형
Timer 컨트롤을 이용한 디지털 시계
타이머는 빈번히 사용되는 중요한 컨트롤이다. 타이머를 이용하면 특정 시간 간격마다 이벤트를 발생시킬 수 있다. 타이머 컨트롤은 눈에 보이지 않고 백그라운드에서 동작한다. 타이머가 동작하는 간격을 Interval 속성에서 지정할 수 있다. 이때 단위는 밀리초이다. 디폴트로 Enable 속성이 false로 설정된다. 이를 true로 바꾸어야 타이머가 동작을 시작하게 된다. 또는 Start() 메서드로 타이머를 시작할 수도 있다.
타이머 컨트롤을 이용하여 디지털 시계를 만들어보자.
왼쪽 라벨은 위에서부터 Name 속성을 DispM, DispS, DispMS로 바꿔주었다.
Timer1, Timer2의 interval을 각각 1, 100으로 설정했다.
using System;
using System.Windows.Forms;
namespace _20200820_002
{
public partial class Form1 : Form
{
//var는 메소드안에서 사용가능
private int CountMS = 0;
private int CountM = 0;
private int CountS = 0;
private bool Toggle = false;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e) // 숫자만 바꾸는 Tick
{
++CountMS;
if (CountMS == 60)
{
CountMS = 0;
++CountS;
if (CountS == 60)
{
CountS = 0;
++CountM;
}
}
}
private void timer2_Tick(object sender, EventArgs e)// 비주얼 Tick
{
DispM.Text = CountM.ToString();
DispS.Text = CountS.ToString();
DispMS.Text = CountMS.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
if (Toggle == false)
{
timer1.Start();
timer2.Start();
Toggle = true;
}
else
{
timer1.Stop();
timer2.Stop();
Toggle = false;
}
}
//리셋 버튼(클릭시 값들이 초기화, 라벨이 0으로 표시)
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
timer2.Stop();
Toggle = false;
CountM = 0;
CountMS = 0;
CountS = 0;
DispM.Text = CountM.ToString();
DispS.Text = CountS.ToString();
DispMS.Text = CountMS.ToString();
}
}
}
분까지의 동작을 보기위해 5초에 1분으로 임의로 설정했다(이중 if문의 CountS의 숫자만 바꾸면 된다)
DateTimePicker를 이용한 날짜 계산기
DateTimePicker는 사용자가 날짜와 시간을 선택하게 할 수 있는 컨트롤이다. 디폴트로 오늘의 날짜를 표시하는데 오른쪽의 화살표가 표시된 버튼을 누르면 아래 이미지와 같이 날짜를 선택할 수 있게 달력이 표시된다.
DateTimePicker에서 날짜를 선택하면 선택한 날짜부터 오늘까지 며칠이 지났는지 계산하는 프로그램을 만들어보자
using System;
using System.Windows.Forms;
namespace _20200820_003
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
DateTime today = DateTime.Today; // 오늘 날짜를 today에 할당한다.
DateTime selecetedDay = dateTimePicker1.Value; // TimePicker에서 선택된 날짜를 selectedDay에 할당해준다
txtDates.Text = today.Subtract(selecetedDay).TotalDays.ToString("0");
// 오늘 날짜에서 선택된 날짜를 뺀 결과를 날짜 단위로 변환해서 소수점없이 텍스트박스에 출력
}
}
}
선택한 날짜에서 오늘까지의 시간을 계산해준다.
DateTimePicker, Timer
반응형
'개발자과정준비 > WinForm' 카테고리의 다른 글
[Winform] 윈폼 Chart (0) | 2020.09.10 |
---|---|
[Winform] 윈폼 복습 11. TabControl (0) | 2020.08.27 |
[Winform] 윈폼 복습 9. MaskedTextBox (0) | 2020.08.26 |
[Winform] 윈폼 복습 8. 성적계산기 만들기 (0) | 2020.08.26 |
[Winform] 윈폼 복습 7. 로그인 창 만들기 (0) | 2020.08.25 |