【问题标题】:How to use MonthCalender to insert date in text box?如何使用 MonthCalender 在文本框中插入日期?
【发布时间】:2012-10-12 04:57:34
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    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。接下来,您添加事件侦听器以离开焦点和获得焦点。 如果你不能让它工作,我可以提供我测试它的示例解决方案。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-02
        • 1970-01-01
        • 1970-01-01
        • 2012-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多