Установка для выбора даты и времени пустого значения или значения 0

У меня есть эта форма прямо здесь, где пользователь будет добавлять дату начала диагностики. довольно просто не так ли? но в диагнозе end как бы я поставил его на пустое место? или 0 значение? вот моя форма.введите здесь описание изображения


person user962206    schedule 25.03.2012    source источник
comment
Не могли бы вы показать код? Подсказка заключается в том, чтобы использовать Nullable‹DateTime› DateTime? поэтому он может хранить ноль. DateTime является объектом значения и поэтому не может хранить нуль   -  person James Kyburz    schedule 25.03.2012
comment
В моей базе данных тип данных - только дата. Я имею в виду, как в пользовательском интерфейсе установить их начальные значения равными нулю или 0? он будет иметь значение, если пользователь щелкнет по нему.   -  person user962206    schedule 25.03.2012
comment
возможный дубликат DateTimePicker Null Value (.NET)   -  person bluish    schedule 13.11.2013


Ответы (7)


Лучшее, что вы можете сделать, это установить ShowCheckBox в true. Если CheckBox не отмечен, считается, что дата окончания не установлена.

person Thomas Levesque    schedule 25.03.2012
comment
дата окончания установлена ​​= 0? или ноль? - person user962206; 25.03.2012
comment
Нет, для свойства Value по-прежнему установлена ​​действительная дата. Вам нужно протестировать свойство Checked, чтобы решить, хотите ли вы использовать дату или нет. - person Thomas Levesque; 25.03.2012

я думаю, что невозможно установить его как пустое или 0 значение.. самое меньшее, что вы можете сделать, это установить его в MinDate, если оно равно нулю..

этот у меня работает..

 dateTimePicker1.Format = DateTimePickerFormat.Custom;

 dateTimePicker1.CustomFormat = " ";
person rutchel    schedule 28.03.2012

вы не хотите, чтобы для него было установлено значение 0. Это не имеет смысла (01.01.01? Большинство БД не хранят эту дату)

Вы должны указать его либо так же, как начало, либо с разумным запасом, который описывает общий сценарий (например, + 2 недели).

person Dani    schedule 25.03.2012

Попробуйте установить свойство Value. Однако я думаю, что существует ограничение на то, насколько далеко назад вы можете установить значение.

person Devin M    schedule 25.03.2012
comment
Я хочу, чтобы средство выбора даты и времени отображало пустое. или нулевое значение, как я могу этого добиться? - person user962206; 25.03.2012
comment
Вы не можете обнулить значение даты, вы можете установить его только на дату далеко в прошлом. См. ответ Томаса Левеска о размещении флажка рядом с датой, который может дать вам то, что вы хотите. - person Devin M; 25.03.2012

Вы можете установить внешний флажок и отключить средство выбора даты и времени, если хотите обозначить отсутствие даты.

person Alex    schedule 25.03.2012

попробуй использовать

dateTimePicker1.Value.Date

Это вернет вам только дату

person Mujassir Nasir    schedule 23.11.2013
comment
Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его публикацией. - person Qantas 94 Heavy; 24.11.2013

Все решилось, осталось только настроить. Как вы, ребята, говорили, я не устанавливал значение или свойства, поэтому в любом случае это было бы нулевым.

private string _BirthDate;

        public Form1()
        {
            InitializeComponent();
            dateTimePicker1.MaxDate = DateTime.Now; // Ensures no future dates are set.
            dateTimePicker1.Format = DateTimePickerFormat.Custom;
            //dateTimePicker1.Checked = true;
            dateTimePicker1.CustomFormat = dateTimePicker1.CustomFormat;
            dateTimePicker1.Value = DateTime.Now;
        }
        public string BirthDate
        {
            set
            {
                if (dateTimePicker1.Value.Date == DateTime.Today)
                {
                    dateTimePicker1.CustomFormat = " ";

                }
                else
                {
                    _BirthDate = value;
                }
            }
            get { return _BirthDate; }
        }


        private void button1_Click(object sender, EventArgs e)
        {

           BirthDate = dateTimePicker1.Value.ToString();
        }
person dave.2    schedule 17.08.2017