共用方式為


顯示日期:使用 MonthCalendar 和 DateTimePicker 控制項

更新:2007 年 11 月

在本課程中,您將學習如何在 Windows Form 上顯示日期。您也將學習如何在使用者選取日期時執行動作。

當您使用了顯示行事曆的控制項時,使用者就可以很容易地選取日期。這些控制項的使用也可確定日期格式的正確。您可以使用 MonthCalendar 控制項或 DateTimePicker 控制項顯示行事曆。

MonthCalendar 控制項可讓您顯示一個或多個月份的行事曆。如果您使用這個控制項,使用者即可選取單一日期或一個範圍的日期。

DateTimePicker 控制項有兩種狀態。根據預設,DateTimePicker 控制項顯示為具有下拉箭號的文字方塊。當使用者按一下下拉箭號時,行事曆便會出現。如果您使用這個控制項,使用者便只能選取單一日期。DateTimePicker 控制項也讓您能顯示時間而非日期。

根據所使用的控制項,從這些控制項擷取日期的流程會有所不同。請針對 MonthCalendar 控制項使用 Start 屬性,並針對 DateTimePicker 控制項使用 Value 屬性。

試試看!

若要擷取日期並在標籤中顯示

  1. 在 [檔案] 功能表上,按一下 [新增專案]。

    [新增專案] 對話方塊隨即出現。

  2. 按一下 [Windows Form 應用程式],然後按一下 [確定]。

  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] 控制項中所選取的日期範圍。根據預設,可以選取的天數最多為七天,不過您可以設定 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 Form 中。您也已經學會如何顯示日期範圍,以及如何格式化所擷取的日期。在下一個課程中,您將學習如何使用資料控制項。

下一個課程:資料控制項:在 DataGridView 控制項中顯示資料

請參閱

參考

DateTimePicker 控制項概觀 (Windows Form)

MonthCalendar 控制項概觀 (Windows Form)

FormatDateTime 函式 (Visual Basic)

其他資源

建立程式的視覺外觀:Windows Form 簡介