在C#中的DateTimePicker中设置Null值

Kir*_*ran 4 c# winforms

我正在winform用C#开发一个基于桌面的应用程序.我希望用户将DateTimePicker设置为Null.我正在开发一个搜索框,如果设置为日期,我想忽略该日期Null

这是我在做的事情:

     this.dateTimePicker2.CustomFormat = " ";
     this.dateTimePicker2.Format = DateTimePickerFormat.Custom;

     private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
     {
         this.dateTimePicker2.CustomFormat = "dd-MM-yy";
     }
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是,一旦用户选择日期,dateTimePicker2控件就会显示一些日期(用户选择的日期).无法再将日期设置为null.我并不热衷于启用与datetimepicker控件关联的复选框.

我想知道是否可以将datetimepicker日期设置为null.

谢谢

Met*_*Man 5

这是从一个旧的帖子引用,但该网站上的其他用户已经在这里发布了它

// Use ValueChanged to decide if the value should be displayed:
    dateTimePicker1.ValueChanged += (s, e) => { dateTimePicker1.CustomFormat = (dateTimePicker1.Checked && dateTimePicker1.Value != dateTimePicker1.MinDate) ? "MM/dd/yyyy" : " "; };

    //When getting the value back out, use something like the following:
    DateTime? dt = (dateTimePicker1.Checked && dateTimePicker1.Value != dateTimePicker1.MinDate) ?  (DateTime?) dateTimePicker1.Value : null; 
    // or
    DateTime dt2 = (dateTimePicker1.Checked && dateTimePicker1.Value != dateTimePicker1.MinDate) ?  dateTimePicker1.Value : DateTime.MinValue; 
Run Code Online (Sandbox Code Playgroud)

或者您可以将CustomFormat设置为""空白空间,如下所示

dateTimePicker1.CustomFormat= " ";
Run Code Online (Sandbox Code Playgroud)