显示日期:使用 MonthCalendar 和 DateTimePicker 控件

更新:2007 年 11 月

在本课中,您将学习如何在 Windows 窗体上显示日期。您还将学习如何在用户选择日期时执行操作。

当使用显示日历的控件时,该控件使用户能够轻松选择日期。使用这些控件还可以确保日期的格式正确。可以使用 MonthCalendar 控件或 DateTimePicker 控件显示日历。

MonthCalendar 控件可让您显示一个或多个月的日历。如果您使用此控件,则用户可以选择单个日期或一个日期范围。

DateTimePicker 控件有两种状态。默认情况下,DateTimePicker 控件以文本框形式出现,并带有一个下拉箭头。用户单击下拉箭头时,会出现一个日历。如果您使用此控件,则用户只可以选择单个日期。DateTimePicker 控件还使您能够显示时间而不是日期。

用于从这些控件中检索日期的过程根据所使用的控件而不同。使用 MonthCalendar 控件的 Start 属性,并使用 DateTimePicker 控件的 Value 属性。

试一试!

检索日期并在标签中显示

  1. 在“文件”菜单上单击“新建项目”。

    将出现“新建项目”对话框。

  2. 单击“Windows 窗体应用程序”,然后单击“确定”。

  3. 将“Label”控件添加到窗体中,保留默认名称“Label1”。

  4. 移除“Label”控件的“Text”属性中的文本。

  5. 将“MonthCalendar”控件添加到窗体中,保留默认名称“MonthCalendar1”。

  6. 双击“MonthCalendar”控件以便在代码编辑器中输入默认事件处理程序。

  7. 在 MonthCalendar1_DateChanged 事件处理程序中,添加下列代码以向列表添加项。

    Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionRange.Start)
    
  8. 返回设计器视图,并将“DateTimePicker”控件添加到窗体中,保留默认名称“DateTimePicker1”。

  9. 双击“DateTimePicker”控件以便在代码编辑器中输入默认事件处理程序。

  10. 在 DateTimePicker_ValueChanged 事件处理程序中,添加下列代码以向列表添加项。

    Me.Label1.Text = CStr(Me.DateTimePicker1.Value)
    
  11. 按 F5 运行程序。

  12. 当窗体出现时,单击“MonthCalendar”控件中的日期,然后验证该日期是否会显示在标签中。

  13. 单击“DateTimePicker”控件的下拉箭头并选择日期。

    日期和时间将显示在标签中。

  14. 关闭程序。

检索多个日期

您可以通过使用 SelectionRangeStartEnd 属性来检索“MonthCalendar”控件中选择的日期范围。默认情况下,可以选择的最大天数为 7 天,但可以通过设置 MaxSelectionCount 属性对其进行更改。可以通过检查开始日期和结束日期是否相同来确定是否已选定一个范围。

从月历控件检索日期范围

  1. 将 MonthCalendar1_DateChanged 事件处理程序中的代码更改为以下代码。此代码将设置控件中可选择的最大天数(两周)。如果仅选择了一天,则在标签中显示开始日期;如果在“MonthCalendar”控件中选择了一个范围,则显示相应的日期范围。

    Me.MonthCalendar1.MaxSelectionCount = 14
    
    If Me.MonthCalendar1.SelectionRange.Start = _
        Me.MonthCalendar1.SelectionRange.End Then
    
        Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionStart)
    
    Else
    
        Me.Label1.Text = Me.MonthCalendar1.SelectionRange.Start & _
            " - " & Me.MonthCalendar1.SelectionRange.End
    
    End If
    
  2. 按 F5 运行程序。

  3. 当窗体出现时,在“MonthCalendar”控件中选择日期范围,然后验证该日期范围是否会显示在标签中。

  4. 关闭程序。

设置日期格式

可以通过使用 FormatDateTime 函数为 MonthCalendar 控件和 DateTimePicker 控件返回的日期设置格式。可以使用一些常数来指示日期的格式:

常数

说明

示例(基于默认的美国英语区域设置)

DateFormat.GeneralDate

显示日期和/或时间。如果有日期部分,则用短日期格式显示。如果有时间部分,则用长时间格式显示。如果两部分都有,则两部分都显示。

11/22/1963 12:00:00 PM

DateFormat.LongDate

按照计算机的区域设置中指定的长日期格式来显示日期。

Friday, November 22, 1963

DateFormat.ShortDate

按照计算机的区域设置中指定的短日期格式来显示日期。

11/22/1963

DateFormat.LongTime

按照计算机中区域设置指定的长时间格式显示时间。

12:00:00 PM

DateFormat.ShortTime

按照 24 小时格式 (hh:mm) 显示时间。

12:00

设置标签中日期的格式

  1. 将 MonthCalendar1_DateChanged 事件处理程序中的代码更改为以下代码。此代码将返回的日期设置为长日期格式。

    Me.MonthCalendar1.MaxSelectionCount = 14
    
    If Me.MonthCalendar1.SelectionRange.Start = _
        Me.MonthCalendar1.SelectionRange.End Then
    
        Me.Label1.Text = FormatDateTime( _
            Me.MonthCalendar1.SelectionStart, _
            DateFormat.LongDate)
    Else
        Me.Label1.Text = FormatDateTime( _
            Me.MonthCalendar1.SelectionRange.Start, _
            DateFormat.LongDate) & " - " & FormatDateTime( _
            Me.MonthCalendar1.SelectionRange.End, DateFormat.LongDate)
    End If
    
  2. 将 DatePicker1_ValueChanged 事件处理程序中的代码更改为以下代码。此代码将返回的日期设置为长日期格式。

    Me.Label1.Text = FormatDateTime(Me.DateTimePicker1.Value, _
        DateFormat.LongDate)
    
  3. 按 F5 运行程序。

  4. 当窗体出现时,单击“MonthCalendar”控件中的单个日期或日期范围。验证该日期或日期范围是否会在标签中以长日期格式显示。

  5. 单击“DateTimePicker”控件中的日期,并验证该日期是否会在标签中以长日期格式显示。

  6. 关闭程序。

后续步骤

在本课中,您学习了如何检索 MonthCalendarDateTimePicker 控件中选择的日期并在 Windows 窗体上显示它们。您还学习了如何显示日期范围以及如何设置检索到的日期的格式。在下一课中,您将学习如何使用数据控件。

下一课:数据控件:在 DataGridView 控件中显示数据

请参见

参考

DateTimePicker 控件概述(Windows 窗体)

MonthCalendar 控件概述(Windows 窗体)

FormatDateTime 函数 (Visual Basic)

其他资源

创建程序的可视外观:Windows 窗体介绍