![](https://images2015.cnblogs.com/blog/894738/201607/894738-20160703091124140-57088465.png)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 日期选择器
{
public partial class 日期选择器 : Form
{
public 日期选择器()
{
InitializeComponent();
}
private void 日期选择器_Load(object sender, EventArgs e)
{
//程序加载的时候将年份添加到下拉框中
//获得当前年份
int year = DateTime.Now.Year;
for (int i = year; i >= 1949; i--)
{
cboYear.Items.Add(i+"年");
}
}
/// <summary>
/// 当年份发生改变的时候加载月份
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cboYear_SelectedIndexChanged(object sender, EventArgs e)
{
//添加之前应该清空之前的内容
cboMonth.Items.Clear();
for (int i = 1; i <= 12; i++)
{
cboMonth.Items.Add(i+"月");
}
}
/// <summary>
/// 当月份改变的时候添加日期
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cboMonth_SelectedIndexChanged(object sender, EventArgs e)
{
//选择前先清空
cboDay.Items.Clear();
//定义一个变量存储天数
int day=0;
//获得月份
string strMonth = cboMonth.SelectedItem.ToString().Split(new char[] { '月' }, StringSplitOptions.RemoveEmptyEntries)[0];
string strYear = cboYear.SelectedItem.ToString().Split(new char[] { '年' }, StringSplitOptions.RemoveEmptyEntries)[0];
//MessageBox.Show(cboMonth.SelectedItem.ToString());
int year = Convert.ToInt32(strYear);
int month = Convert.ToInt32(strMonth);
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 2:
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
{
day = 29;
}
else
{
day = 28;
}
break;
default: day = 30;
break;
}
for(int i=1;i<=day;i++)
{
cboDay.Items.Add(i + "日");
}
}
}
}
![](https://images2015.cnblogs.com/blog/894738/201607/894738-20160703091401968-928125683.png)
![](https://images2015.cnblogs.com/blog/894738/201607/894738-20160703091410624-2002627433.png)
![](https://images2015.cnblogs.com/blog/894738/201607/894738-20160703091444796-840388221.png)