Man*_*ali 10 c# datetimepicker winforms
我正在开发一个带有两个DateTimePicker控件的WinForms UI .最初,我想将控件的值设置为null,直到用户选择日期.如果用户未选择日期,则会将值传递给数据库.
默认情况下,它采用当前日期.
你能不能提出建议或附上一段能帮我解决问题的代码.
我试过设置MinDate属性,但它不起作用.
代码在C#.Net中.
谢谢,Manali.
Zyo*_*Zyo 14
我认为最好的解决方案是使用内置复选框,告诉用户是否指定了值.
设置控件属性 ShowCheckBox = true
当你将值绑定到它时,执行类似的操作
if (value == DateTime.MinValue) {
datePicker.Checked = false;
} else {
datePicker.Checked = true;
datePicker.Value = value;
}
Run Code Online (Sandbox Code Playgroud)
回读值时检查Checked属性.
如果您在取消选中时不喜欢显示的值,则可以将其与其他建议结合使用.
if (!datePicker.Checked) {
// hide date value since it's not set
datePicker.CustomFormat = " ";
datePicker.Format = DateTimePickerFormat.Custom;
} else {
datePicker.CustomFormat = null;
datePicker.Format = DateTimePickerFormat.Long; // set the date format you want.
}
Run Code Online (Sandbox Code Playgroud)
我知道这是一篇较老的帖子,但其他人可能仍然觉得这很有用.它相当优雅和简洁.我在.Net 4.0 DateTimePicker中使用它,但早期版本应该使用最小的调整.它利用MinDate和Checked.
// 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)
| 归档时间: |
|
| 查看次数: |
69838 次 |
| 最近记录: |