본문 바로가기
Study/C#(Window programming)

C# 기초(MonthCalendar와 DateTimePicker)

by Answer Choi 2015. 7. 27.
반응형


MonthCalendar/DateTimePicker 예제


이번에는 날짜를 넣어봅시다.


날짜에 관련된 컨트롤에는 2가지가 있습니다.


MonthCalendar와 DateTimePicker입니다.


MonthCalendar는 쉽게 말해 월별 달력이라고 생각하시면 됩니다.


그리고 DateTimePicker는 선택한 날짜만 보이는 겁니다.



위 그림처럼 추가를 했는데 위쪽이 DateTimePicker이고, 아래가 MonthCalendar입니다.


디스플레이 되는 것도 다르지만 가장 큰 차이는 DateTimePicker는 선택해서 보여줄 수 있는 날짜가 


하루이지만, MonthCalendar는 최대 1주일을 선택할 수 가 있습니다.



MonthCalendar에 보시면 13일부터 19일까지 선택된 걸 볼 수 있습니다.


그리고 왼쪽 텍스트 창에 선택된 날짜를 디스플레이 되게 하였습니다.


만약 하루만 선택한다면 하루만 디스플레이 됩니다.



코드는 간단합니다.

1
2
3
4
5
6
7
        private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
        {
            if (monthCalendar1.SelectionRange.Start == monthCalendar1.SelectionRange.End)
                textBox1.Text = monthCalendar1.SelectionRange.Start.ToString("yyyy-MM-dd");
            else
                textBox1.Text = monthCalendar1.SelectionRange.Start.ToString("yyyy-MM-dd"+ "~" + monthCalendar1.SelectionRange.End.ToString("yyyy-MM-dd");
        }
cs


MonthCalendar는 위에서도 말했듯이 날짜 범위를 선택할 수 있으므로 선택된 날짜를 가져올 때


'SelectionRange'라는 method로 가져옵니다. 'Start'는 시작 날짜, 'End'는 끝 날짜 입니다.


'DateTime'과 마찬가지로 ToString뒤에 형식을 적어주면 형식대로 가져오게 됩니다.


그렇다면 DateTimePicker는 어떨까요?



DateTimePicker는 오른쪽의 버튼을 누르시면 풀다운으로 캘린더가 나타납니다.


날짜를 선택하시면 마찬가지로 왼쪽 텍스트 창에 디스플레이 됩니다.


앞서 말했듯이 DateTimePicker는 선택할 수 있는 날짜가 하루뿐입니다.


코드는 더 간단합니다.


1
2
3
4
        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            textBox1.Text = dateTimePicker1.Value.ToString("yyyy-MM-dd");
        }
cs


범위가 아닌 하루밖에 선택이 안되기 때문에 'Value'라는 method를 쓰시면 됩니다.


MonthCalendar와 DateTimePicker 둘 다 선택한 날짜를 가져오는 역할을 하지만, 쓰임새는 다릅니다.


하루이상의 날짜가 필요할 땐 MonthCalendar를 하루만 필요할 땐 DateTimePicker를 쓰시면 됩니다.


반응형

인기글