如何更改.NET DateTimePicker控件以允许输入空值?

时间:2008-11-12 15:48:16

标签: .net datetimepicker null

改变.NET DateTimePicker控件的最简单,最强大的方法是什么,允许用户输入null值?

6 个答案:

答案 0 :(得分:46)

您无需修改​​它即可执行此操作。

.net中的DateTimePicker实际上内置了一个复选框。

ShowCheckBox属性设置为true

然后,您可以使用Checked属性查看用户是否输入了值。

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

答案 1 :(得分:6)

这是一个有趣的article on CodeProject。作者重写了Value属性以接受Null值作为DateTime.MinValue ,同时保持标准控件的MinValue和MaxValue的验证。这就是它的全部内容。

答案 2 :(得分:4)

添加一个标记为“启用通知”的附加复选框,启用/禁用DateTimePicker。

答案 3 :(得分:2)

Tri的解决方案并没有为我完全削减它,所以想到Grazioli先生并且他做了一些事情:http://www.codeguru.com/csharp/csharp/cs_controls/custom/article.php/c9645

答案 4 :(得分:0)

我在解决方案上发布了很长的路径,在代码评论中有一些关于此控件的特殊问题的发现:

DateTime Picker null value

答案 5 :(得分:0)

将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;
            }
        }