私は.netの初心者です。day
、month
およびyear
3つの異なるコンボボックスで表示する必要があります。それらを埋めるために、私は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"、...)