Как изменить элемент управления .NET DateTimePicker, чтобы разрешить ввод нулевых значений? - PullRequest
21 голосов
/ 12 ноября 2008

Какой самый простой и надежный способ изменить элемент управления .NET DateTimePicker, чтобы пользователи могли вводить null значения?

Ответы [ 6 ]

46 голосов
/ 19 ноября 2009

Вам не нужно изменять его, чтобы сделать это.

*. 1003 * в .net на самом деле имеет встроенный флажок.

Установите для свойства ShowCheckBox значение true.

Затем вы можете использовать свойство Checked, чтобы увидеть, если пользователь ввел значение.

http://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.showcheckbox(VS.80).aspx

6 голосов
/ 12 ноября 2008

Вот интересная статья о CodeProject . Автор переопределил свойство Value для принятия значения Null в качестве DateTime.MinValue , сохраняя при этом проверку MinValue и MaxValue стандартного элемента управления. Вот и все, что нужно.

4 голосов
/ 12 ноября 2008

Установка дополнительного флажка с надписью «Включить уведомление», который включает / отключает DateTimePicker.

2 голосов
/ 09 декабря 2008

Решение Три не совсем обошлось, и я подумал, что мистер Грациоли и что-то с ним сделали:

0 голосов
/ 09 октября 2015

Установите для свойства ShowCheckBox значение true. Тогда вы можете использовать свойство Checked следующим образом:

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            DateTimePicker thisDateTimePicker = (DateTimePicker)sender;
            if (thisDateTimePicker.Checked == false)
            {
                thisDateTimePicker.CustomFormat = @" "; //space
                thisDateTimePicker.Format = DateTimePickerFormat.Custom;
            }
            else
            {
                thisDateTimePicker.Format = DateTimePickerFormat.Short;
            }
        }
0 голосов
/ 23 декабря 2011

Я опубликовал свое решение, которое содержит некоторые выводы в комментариях к коду об особых проблемах с этим элементом управления:

DateTime Picker нулевое значение

...