【发布时间】:2012-10-13 11:04:56
【问题描述】:
我是 .net 的初学者。我需要在三个不同的组合框中显示day、month 和year。为了让它们填满,我尝试了从 1950 年到现在的硬编码值。后来我意识到我还需要检查 2 月(28 天)、闰年和其他问题。有没有其他方法可以在不对值进行硬编码的情况下做到这一点。
在互联网上搜索答案时,我遇到了我不想使用的 datepicker 和 monthcalendar(因为我的项目应该与使用 datepicker 和 monthcalendar 的其他朋友不同)。或者如果您有任何其他建议而不是组合框,请分享。
我相信以前有人问过这个问题。我不介意你直接链接。
在 nikhil agrawal 的回答之后编辑:
工作代码:
cmbDay ---> combobox
cmbMonth ---> combobox
cmbYear ---> combobox
FormLoad 事件
this.cmbYear.Leave+=new EventHandler(cmbYear_Leave);
this.cmbDay.Leave += new EventHandler(cmbYear_Leave);
this.cmbMonth.Leave += new EventHandler(cmbYear_Leave);
//
for (int i = 1950; i < 2012; i++)
{
cmbYear.Items.Add(i.ToString());
}
for (int i = 1; i < 32; i++)
{
cmbDay.Items.Add(i.ToString());
}
//
cmbDay.SelectedIndex = 0;
cmbMonth.SelectedIndex = 0;
cmbYear.SelectedIndex = 0;
OnLeave 事件
private void cmbYear_Leave(object sender, EventArgs e)
{
int day = DateTime.DaysInMonth(Convert.ToInt32(cmbYear.Text), cmbMonth.SelectedIndex+1);
if (day <= cmbDay.SelectedIndex)
{
//alert message or your managing code.
}
}
PS:cmbMonth 是字符串格式 ("Jan","Feb","Mar",...)
【问题讨论】:
标签: c# .net winforms c#-4.0 combobox