0

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

4

2 回答 2

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;
}

首先,MaxSelectionCount为您设置monthCalendar 控件。接下来,您添加事件侦听器以离开焦点和获得焦点。如果你不能让它工作,我可以提供我测试它的示例解决方案。

于 2012-10-14T06:57:23.443 回答
1

如果您想从月历中获取日期并将其显示在文本框中,则首先将月历从 Visual Studio 的工具箱中拖放到您的设计表单中。并双击它并编写这些代码

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

这将显示像这样的日期 14/2/2014

于 2014-03-05T12:24:11.403 回答