Выбор нескольких дат в DateTimePicker в vb.net? - PullRequest
4 голосов
/ 24 января 2012

В любом случае я могу выбрать несколько дат в окне выбора времени в Vb.net?

Ответы [ 4 ]

3 голосов
/ 24 января 2012

Используйте свойство BoldedDates в календаре месяца, чтобы получить массив объектов DateTime.Вы можете использовать это, чтобы получить свою коллекцию и, наконец, очистить жирные даты после хранения, чтобы ее можно было повторно использовать.

2 голосов
/ 18 декабря 2012
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

Я нашел это и попробую. это работает, Оригинальный источник от здесь

2 голосов
/ 24 января 2012

Выбор нескольких дат в DateTimePicker в vb.net?

Если вы хотите выбрать диапазон дат, используя DateTimePicker, то лучше всего, если, вероятно, два DateTimePicker контролируют a от даты и a до даты.

Затем можно изменить дату противоположного элемента управления при выборе первой даты, чтобы убедиться, что FromDate предшествует ToDate и наоборот

Я нашел элемент управления MonthCalendar, который, кажется, идеально подходит для этой цели, но я не могу найти параметр (метод, свойство), чтобы получить selectedDates и затем использовать их.

Если вы хотите использовать элемент управления MonthCalendar, вы можете указать свойство MaximumSelectionCount, а затем пользователь может выбрать даты, щелкнув одну из них и щелкнув по смене другой даты

Вы можете получить даты, выбранные пользователем, используя свойства SelectionRange или SelectionStart и SelectionEnd

Как насчет того, чтобы выбрать случайные даты, например 4, 6, 10 февраля.

Это сложнее. Предложение - вы можете использовать массив BoldedDates из MonthCalendar, и когда пользователь нажимает на день, вы выделяете его жирным шрифтом. Вы можете прочитать массив после того, как они закончили свой выбор? Может быть, у кого-то есть предложение для этого?

0 голосов
/ 24 января 2012

Нет способа сделать это внутри существующего элемента управления DateTimePicker.

Лучшее альтернативное решение будет зависеть от вашей конкретной ситуации. Какой контекст? Если вы ожидаете, что пользователь выберет даты, которые близки друг к другу (и диапазон не слишком большой), достаточно простое решение - использовать другой элемент управления, который разрешит множественный выбор в списке.

Например, CheckedListBox или DataGridView.

Затем заполните его списком дат. По сути, предлагает пользователю список дат.

...