MonthCalendar 컨트롤
MonthCalendar 컨트롤은 날짜 범위 혹은 날짜를 선택할 수 있게 하는 컨트롤이다. 월별 달력을 보여주고 사용자가 날짜 하나를 선택하거나 Shift키를 눌러 날짜 범위를 선택하면, SelectionStart와 SelectionEnd 속성이 셋팅된다. 범위 지정은 시작날짜를 먼저 선택한 후, Shift키를 누른 후 종료날짜를 선택하면 된다.
MonthCalendar 컨트롤 사용
MonthCalendar 컨트롤의 디폴트 날짜 선택범위는 7일로 지정되어 있다. 즉, 7일을 넘게 범위를 정하더라도 종료날짜가 시작일자+7일까지로 자동 셋팅된다. 이를 늘려주기 위해서는 MaxSelectionCount 속성을 늘려주면 된다. 사용자가 날짜를 변경할 때마다 DateChanged 이벤트가 발생한다. 이 이벤트 핸들러를 통해 변경된 날짜 선택 데이타를 이용할 수 있다. 아래 예제는 날짜 범위를 최대 31일까지 지정할 수 있게 하며, 날짜가 변경될 때마다 텍스트 박스 데이타를 변경하는 예이다.
예제
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 초기 선택 범위 지정
monthCalendar1.SelectionStart = DateTime.Now;
monthCalendar1.SelectionEnd = DateTime.Now.AddDays(3);
// MaxSelectionCount 디폴트 값은 7일
monthCalendar1.MaxSelectionCount = 31;
}
private void monthCalendar1_DateChanged(object sender,
DateRangeEventArgs e)
{
// 사용자 캘린더 날짜 변경하면 텍스트 박스 내용 변경
txtStartDate.Text = monthCalendar1.SelectionStart.ToShortDateString();
txtEndDate.Text = monthCalendar1.SelectionEnd.ToShortDateString();
}
}
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 초기 선택 범위 지정
monthCalendar1.SelectionStart = DateTime.Now;
monthCalendar1.SelectionEnd = DateTime.Now.AddDays(3);
// MaxSelectionCount 디폴트 값은 7일
monthCalendar1.MaxSelectionCount = 31;
}
private void monthCalendar1_DateChanged(object sender,
DateRangeEventArgs e)
{
// 사용자 캘린더 날짜 변경하면 텍스트 박스 내용 변경
txtStartDate.Text = monthCalendar1.SelectionStart.ToShortDateString();
txtEndDate.Text = monthCalendar1.SelectionEnd.ToShortDateString();
}
}