改变.NET DateTimePicker控件的最简单,最强大的方法是什么,允许用户输入null
值?
答案 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)
我在解决方案上发布了很长的路径,在代码评论中有一些关于此控件的特殊问题的发现:
答案 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;
}
}