我希望能够显示默认值为nothing的DateTimePicker
,即没有约会。
例如,我有一个任务的开始日期dtTaskStart
和结束日期dtTaskEnd
,但结束日期是未知的,并且最初没有填充。
我为这两个控件指定了自定义格式yyyy-MM-dd
。
在运行时将值设置为null
或空字符串会导致错误,那么我如何才能做到这一点呢?
我已经考虑过使用复选框来控制该字段的启用,但仍然存在显示初始值的问题。
- 编辑:*
可以说是问题DateTimePicker Null Value (.NET)的重复,但是我为我的问题找到的解决方案不是那个问题的解决方案,所以我认为它应该留在这里让其他人找到。
8条答案
按热度按时间dvtswwa31#
只需按如下方式设置属性:
当用户按下“清除键”或“删除键”时,
在
DateTimePicker1_ValueChanged
事件上执行u3r8eeie2#
使用
CustomFormat
属性混淆值,使用复选框cbEnableEndDate
作为标志来指示其他代码是否应该忽略该值:lawou6xi3#
这对我来说是C#
Nice one!
sulc1iza4#
如果任何人在表单加载事件期间将datetimepicker控件设置为空白,然后根据需要显示当前日期,这里有一个例子:
确保
CustomFormat = " "
在两种方法中具有相同数量的空格(至少一个空格)sd2nnvve5#
当我想显示一个空的日期值时,我这样做
然后当用户点击控件时,我会看到:
这允许您显示和使用空的日期值,但仍然允许用户能够在他们希望的时候将日期更改为某个值。
请记住,sStrDate已经被验证为有效的日期字符串。
thigvfpy6#
基本概念是相同的告诉别人。但是当你有多个dateTimePicker时,这种方式更容易实现。
值改变事件函数
未选中时
选中时
fnvucqvd7#
如果你想显示空的datetimepicker,并且在用户没有选择日期时得到null,那么在代码中进行以下更改,否则保存日期。
1.将datetimepickerFORMAT属性设置为自定义。
1.将CUSTOM FORMAT属性设置为空字符串““。
1.将其TAG默认设置为0。
1.注册事件为datetimepicker VALUECHANGED。
现在开始真实的工作
如果用户将与datetimepicker交互,则将调用其VALUECHANGED事件,并将其TAG属性设置为1。
最终步骤
现在保存时,检查其TAG是否为零,然后保存NULL日期,否则如果TAG为1,则选择并保存日期时间选择器值。
它就像一个魅力。
现在,如果您希望通过用户交互将其值更改回空,则添加复选框并使用此复选框显示文本“Clear”。如果用户想清除日期,只需再次将其CUSTOM FORMAT属性设置为空字符串““,并将其TAG设置回0。就是这样..
gev0vcfq8#
最好使用文本框来调用/显示日期,并在保存时使用DateTimePicker。根据要求,使可见属性为true或false。
例如:在表单加载过程中,在文本框中加载日期并使DTPIcker不可见,反之亦然