如何使用MonthCalender在文本框中插入日期?

我的Windows窗体中有一个textBox1 。 我想用它来获取用户的日期。 我想在用户将光标放在textbox1显示MonthCalender1 ,然后自动在textbox1设置日期,然后日历将消失。 我如何使用C#或C ++ / CLI来做到这一点?

这不是最好的代码,但我希望你能得到这个想法:

 public Form1() { InitializeComponent(); monthCalendar1.MaxSelectionCount = 1; } private void textBox1_Enter(object sender, EventArgs e) { monthCalendar1.Visible = true; } private void textBox1_Leave(object sender, EventArgs e) { if (!monthCalendar1.Focused) monthCalendar1.Visible = false; } private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e) { var monthCalendar = sender as MonthCalendar; textBox1.Text = monthCalendar.SelectionStart.ToString(); } private void monthCalendar1_Leave(object sender, EventArgs e) { var monthCalendar = sender as MonthCalendar; monthCalendar.Visible = false; } 

首先,为monthCalendar控件设置MaxSelectionCount。 接下来,添加事件侦听器以保留焦点并获得焦点。 如果你没有使它工作,我可以提供我测试的样品解决方案。

如果您想从一个月的日历中获取日期并在文本框中显示,那么首先将MonthCalender从Visual Studio中的ToolBox拖放到您的设计表单中。 然后双击它并编写这些代码

  private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e) { textbox1.text = monthCalendar1.SelectionRange.Start.ToShortDateString(); } 

这将显示如此2014年2月14日的日期