Есть ли в любом случае я могу выбрать несколько дат в Date Time Picker в Vb.net?Выбор нескольких дат в DateTimePicker в vb.net?
ответ
Выбор нескольких дат в DateTimePicker в vb.net?
Если вы хотите, чтобы выбрать диапазон дат, используя DateTimePicker, то лучший способ, если возможно два DateTimePicker
управляет от даты и до настоящего времени.
Вы можете изменить дату противоположного контроля, когда первая дата выбран, чтобы убедиться, что FromDate находится перед Todate и наоборот
Я нашел контроль MonthCalendar который, кажется, идеально подходит для этой цели но я не могу найти вариант (метод, свойство), чтобы получить selectedDates, а затем использовать их.
Если вы хотите использовать MonthCalendar
управления можно указать MaximumSelectionCount
свойство, а затем пользователь может выбрать дату, нажав на одну и смещаться щелчок на другую дату
Вы можете восстановить даты, выбранные пользователем с помощью SelectionRange
или SelectionStart
и SelectionEnd
свойства
Как насчет если я хочу, чтобы выбрать случайные даты, такие как 4, 6, 10 февраля
Это сложнее. Предложение - вы можете использовать массив BoldedDates
MonthCalendar
, и когда пользователь нажимает на день, вы выделяете его жирным шрифтом. Затем вы можете прочитать массив после того, как они закончили свой выбор? Может быть, у кого-то есть предложение?
Как насчет того, хочу ли я выбрать случайные даты, например, 4, 6, 10 февраля. Как SelectionRange.Start и SelectionRange.End дадут начальную и конечную дату, а не выбранные даты. Кроме того, в MonthCalendar вы можете выбрать одновременные даты, а не случайный выбор. – raziiq
Использование объекта BoldedDates в календаре месяца, чтобы получить массив объектов DateTime. Вы можете использовать это, чтобы получить свою коллекцию и, наконец, очистить жирные даты после их хранения, чтобы их можно было повторно использовать.
Спасибо за предложение. Как я могу использовать его? Я имею в виду, что хочу нажимать дату, чтобы она была выделена жирным шрифтом, а затем после того, как все нужные даты выбраны, я хочу добавить их в массив BoldedDates, нажав кнопку. Я хочу показать выбор пользователю, а также в MonthCalendar, чтобы он знал даты, которые он выбирает. – raziiq
Нет никакого способа сделать это внутри существующего элемента управления DateTimePicker
.
Лучшее альтернативное решение будет зависеть от конкретной ситуации. Каков контекст? Если вы ожидаете, что пользователь будет выбирать даты, близкие друг к другу (и диапазон не слишком велик), достаточно простое решение - использовать другой элемент управления, который позволит использовать мультиселекцию в списке.
Например, CheckedListBox
или DataGridView
.
Затем заполните его списком дат. Фактически, предлагая пользователю подборку дат.
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
Что вы на самом деле пытаетесь сделать? PLS объяснить сценарий. BTW Невозможно выбрать две даты за раз. – Harsh
Я пытаюсь получить набор дат и хочу использовать его для получения зарплаты для сотрудников. Я нашел элемент управления MonthCalendar, который кажется идеальным для этой цели, но я не могу найти вариант (метод, свойство), чтобы получить selectedDates, а затем использовать их. Любые комментарии по этому поводу? – raziiq