顯示日期:使用 MonthCalendar 和 DateTimePicker 控制項
更新:2007 年 11 月
在本課程中,您將學習如何在 Windows Form 上顯示日期。您也將學習如何在使用者選取日期時執行動作。
當您使用了顯示行事曆的控制項時,使用者就可以很容易地選取日期。這些控制項的使用也可確定日期格式的正確。您可以使用 MonthCalendar 控制項或 DateTimePicker 控制項顯示行事曆。
MonthCalendar 控制項可讓您顯示一個或多個月份的行事曆。如果您使用這個控制項,使用者即可選取單一日期或一個範圍的日期。
DateTimePicker 控制項有兩種狀態。根據預設,DateTimePicker 控制項顯示為具有下拉箭號的文字方塊。當使用者按一下下拉箭號時,行事曆便會出現。如果您使用這個控制項,使用者便只能選取單一日期。DateTimePicker 控制項也讓您能顯示時間而非日期。
根據所使用的控制項,從這些控制項擷取日期的流程會有所不同。請針對 MonthCalendar 控制項使用 Start 屬性,並針對 DateTimePicker 控制項使用 Value 屬性。
試試看!
若要擷取日期並在標籤中顯示
在 [檔案] 功能表上,按一下 [新增專案]。
[新增專案] 對話方塊隨即出現。
按一下 [Windows Form 應用程式],然後按一下 [確定]。
將 [Label] 控制項加入至表單,並保留預設名稱 [Label1]。
從 [Label] 控制項的 [Text] 屬性移除文字。
將 [MonthCalendar] 控制項加入至表單,並保留預設名稱 [MonthCalendar1]。
按兩下 [MonthCalendar] 控制項,在 [程式碼編輯器] 中輸入預設事件處理常式。
在 MonthCalendar1_DateChanged 事件處理常式中加入下列程式碼,以便在清單中加入項目。
Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionRange.Start)
返回 [設計] 檢視,並將 [DateTimePicker] 控制項加入至表單,保留預設名稱 [DateTimePicker1]。
按兩下 [DateTimePicker] 控制項,在 [程式碼編輯器] 中輸入預設事件處理常式。
在 DateTimePicker_ValueChanged 事件處理常式中加入下列程式碼,以便在清單中加入項目。
Me.Label1.Text = CStr(Me.DateTimePicker1.Value)
按 F5 執行程式。
當表單出現時,按一下 [MonthCalendar] 控制項中的日期,並確認日期出現在標籤中。
按一下 [DateTimePicker] 控制項的下拉箭號,並選取某個日期。
日期和時間便會出現在標籤中。
關閉程式。
擷取多個日期
您可以使用 SelectionRange 的 Start 和 End 屬性擷取在 [MonthCalendar] 控制項中所選取的日期範圍。根據預設,可以選取的天數最多為七天,不過您可以設定 MaxSelectionCount 屬性予以變更。您可以檢查開始和結束日期是否相等,以判斷是否有選取範圍。
若要從月曆控制項擷取日期範圍
將 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
按 F5 執行程式。
當表單出現時,請在 [MonthCalendar] 控制項中選取日期範圍,並確認日期範圍出現在標籤中。
關閉程式。
格式化日期
您可以使用 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 |
若要格式化標籤中的日期
將 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
將 DatePicker1_ValueChanged 事件處理常式中的程式碼變更為下列程式碼。此程式碼會將傳回的日期格式化為完整日期。
Me.Label1.Text = FormatDateTime(Me.DateTimePicker1.Value, _ DateFormat.LongDate)
按 F5 執行程式。
當表單出現時,請按一下 [MonthCalendar] 控制項中的日期或日期範圍。請確認日期或日期範圍是以完整日期格式出現在標籤中。
按一下 [DateTimePicker] 控制項中的某個日期,並確認標籤中的日期是以完整日期顯示。
關閉程式。
後續步驟
在本課程中,您已學會如何擷取在 MonthCalendar 和 DateTimePicker 控制項中所選取的日期,並顯示在 Windows Form 中。您也已經學會如何顯示日期範圍,以及如何格式化所擷取的日期。在下一個課程中,您將學習如何使用資料控制項。
下一個課程:資料控制項:在 DataGridView 控制項中顯示資料
請參閱
參考
DateTimePicker 控制項概觀 (Windows Form)
MonthCalendar 控制項概觀 (Windows Form)
FormatDateTime 函式 (Visual Basic)