2008-09-18 4 views
124

Можно ли использовать DateTimePicker (Winforms), чтобы выбрать дату и время (в раскрывающемся списке)? Как изменить пользовательский показ выбранного значения? Кроме того, можно ли разрешить пользователю вручную вводить дату/время?DateTimePicker: выберите дату и время

ответ

161

установить формат Пользовательский, а затем указать формат:

dateTimePicker1.Format = DateTimePickerFormat.Custom; 
dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss"; 

или же вы хотите, чтобы заложить его. Затем вы можете ввести дату/время. Если вы используете MMM, вам нужно будет использовать числовое значение для месяца для ввода, если только вы сами не запишете какой-либо код (например, 5 результатов в мае)

Не знаю о сборщике для даты и время вместе. Походит на меня, как на заказ.

+1

большое спасибо !! спас мне много времени. – rlee923 2011-03-02 07:19:04

+12

24-часовой режим: "dd MM yyyy HH mm ss". Думаю, разработчик должен заботиться о локализации (другой формат даты и времени в разных странах). Привет из Австрии. – hfrmobile 2013-09-30 08:39:56

+4

@hfrmobile - вы также можете использовать `System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern` и` System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern`, чтобы получить формат для текущей культуры. [Ссылка MSDN] (https://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo) – 2015-01-26 15:14:50

41

К сожалению, это один из многих ошибочных в структуре, или, в лучшем случае, нарушение SRP.

Чтобы использовать DateTimePicker в течение времени, установите свойство Format либо времени или на заказ (использовать пользовательские, если вы хотите, чтобы контролировать формат времени, используя собственностью CustomFormat). Затем установите для свойства ShowUpDown значение true.

Хотя пользователь может установить дату и время вместе вручную, они не могут использовать графический интерфейс для установки обоих.

+0

+1 Спасибо за советы. Это то, что я ищу. – 2011-01-11 19:48:17

1

Вы можете получить его для отображения time. Из этого вы, вероятно, должны иметь два элемента управления (одна дата, один раз), чтобы выполнить то, что вы хотите.

1

Боюсь, что элемент управления DateTimePicker не способен выполнять эти действия. Это довольно простой (и расстраивающий!) Контроль. Ваш лучший вариант - найти сторонний элемент управления, который сделает то, что вы хотите.

Для возможности ввода даты и времени вручную вы можете создать пользовательский компонент с комбинацией TextBox/DateTimePicker, чтобы выполнить это, и он может работать достаточно хорошо, если сторонние элементы управления не являются опцией.

19

DateTime Picker может использоваться для выбора даты и времени, поэтому его называют «Date and Time Picker». Вы можете установить для свойства «« Формат »на« Custom »и установить комбинацию различных спецификаторов формата для представления/выбора даты/времени в разных форматах в« ». Однако, если вы хотите изменить дату, тогда можно использовать всплывающий календарь, тогда как в случае выбора времени (в том же элементе управления вы должны использовать клавиши вверх/вниз для изменения значений.

Например, пользовательский формат «DDDDD, MMMM дд, гггг чч: мм: сс тт» даст вам результат:. «четверг, 20 Август 2009 2:55:23 PM»

Вы можете играть с различные комбинации для спецификаторов формата в соответствии с вашими потребностями, например MMMM даст «август», тогда как MM будет дать «авг»

36

Лучше всего использовать два DateTimePickers для задания Один будет по умолчанию для секции даты и второй DateTimePicker для временной части.Отформатируйте второй DateTimePicker следующим образом.

 timePortionDateTimePicker.Format = DateTimePickerFormat.Time; 
     timePortionDateTimePicker.ShowUpDown = true; 

Двое должны выглядеть после того, как вам захватить их

Two Date Time Pickers

Чтобы получить DateTime от обоих этих элементов управления используйте следующий код

DateTime myDate = datePortionDateTimePicker.Value.Date + 
        timePortionDateTimePicker.Value.TimeOfDay; 

Чтобы назначить DateTime в оба этих элемента управления используют следующий код:

datePortionDateTimePicker.Value = myDate.Date; 
timePortionDateTimePicker.Value = myDate.TimeOfDay; 
7

Перейдите на страницу Properties вашего dateTimePicker в Visual Studio и установите Format на номер Custom. Под CustomFormat введите свой формат. В моем случае я использовал MMMMdd, yyyy | hh:mm

enter image description here
dateTimePickerProperties

Смежные вопросы