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

时间:2012-10-12 04:57:35

标签: c# .net c++-cli monthcalendar

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

2 个答案:

答案 0 :(得分:5)

这不是最好的代码,但我希望你明白这个想法:

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。接下来,添加事件侦听器以保留焦点并获得焦点。 如果你没有使它工作,我可以提供我测试的样本解决方案。

答案 1 :(得分:0)

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

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

这将显示类似于2014年2月14日的日期