2012-01-24 75 views
4

無論如何,我可以選擇Vb.net中Date Time Picker中的多個日期嗎?在vb.net的DateTimePicker中選擇多個日期?

+0

你究竟在做什麼?請解釋場景。順便說一下,它不可能選擇兩個日期。 – Harsh

+0

我正在嘗試獲取日期的集合並希望將其用於爲員工製作薪水。我發現MonthCalendar控件似乎是完美的,但我找不到選項(方法,屬性)來獲取selectedDates,然後使用它們。對此有何評論? – raziiq

回答

2

在vb.net的DateTimePicker中選擇多個日期?

如果您想使用DateTimePicker選擇一個日期範圍,那麼最好的方法是,如果可能兩個DateTimePicker控制從一個日期和一個日期。

然後,您可以更改在第一次約會時採摘,以確保沒有fromdate是TODATE之前,反之亦然

我發現MonthCalendar控件這似乎是最適合這個目的相反的控制之日起但我找不到選項(方法,屬性)來獲取selectedDates,然後使用它們。

如果你想使用一個MonthCalendar控制你可以指定一個MaximumSelectionCount屬性,然後用戶可以通過點擊一個選擇日期和移位,點擊其他日期

您可以檢索用戶選擇的日期通過使用SelectionRange,或SelectionStartSelectionEnd性能

怎麼樣,如果我要選擇隨機日期,如4日,6日,2月10日

這更復雜。一個建議 - 你可以使用MonthCalendarBoldedDates數組,並且當用戶點擊一天時,你會使用它加粗。您可以在完成選擇後讀取數組?也許別人有這個建議?

+0

如果我想選擇隨機日期,如4月6日,10日2月,那麼如何呢?因爲SelectionRange.Start和SelectionRange.End會給出開始和結束日期而不是選定的日期。此外在MonthCalendar中,您可以選擇併發日期而不是隨機選擇。 – raziiq

3

在您的月曆中使用BoldedDates屬性來獲取DateTime對象數組。您可以使用它來獲取您的集合,並最終在存儲之後清除大膽的日期,以便可以重用它。

+0

感謝您的建議。我如何使用它?我的意思是我想單擊一個日期,以便它變成粗體,然後選擇所有期望的日期後,我想通過單擊按鈕將它們添加到BoldedDates數組中。我想在MonthCalendar中向用戶顯示選擇,以便他知道他選擇的日期。 – raziiq

0

在現有的DateTimePicker控件中沒有辦法做到這一點。

最好的替代解決方案將取決於您的具體情況。上下文是什麼?如果您希望用戶選擇靠近在一起的日期(並且範圍不是太大),一個相當簡單的解決方案是使用另一個控件,該控件可以在列表中進行多重選擇。例如CheckedListBoxDataGridView

然後填充日期列表。實際上爲用戶提供日期選擇列表。

2
Private listDates As List(Of DateTime) 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    'Suppose that you have the following list of dates below 
    listDates = New List(Of DateTime)() 
    listDates.Add(DateTime.Now) 
    listDates.Add("12/22/2012") 
    listDates.Add(DateTime.Now.AddDays(-10)) 
End Sub 
Protected Sub Calendar1_DayRender(ByVal sender As Object, ByVal e As DayRenderEventArgs) Handles Calendar1.DayRender 
    'Set Default properties 
    e.Day.IsSelectable = False 
    e.Cell.BackColor = System.Drawing.Color.Gray 
    'Now loop through the list of dates and make it 
    'Selectable 
    For Each d As DateTime In listDates 
     Calendar1.SelectedDates.Add(d) 
     If e.Day.IsSelected Then 
      e.Cell.BackColor = System.Drawing.Color.Green 
      e.Day.IsSelectable = True 
     End If 
    Next 
End Sub 

Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As EventArgs) Handles Calendar1.SelectionChanged 
    'Print the selected date 
    Response.Write("You have selected: " & Calendar1.SelectedDate.ToShortDateString()) 
End Sub 

我發現它,並嘗試。它的工作原理 原始來源here

相關問題