我希望能够使用 DateTimePicker 控件接受 NULL 日期。
“Checked”属性似乎旨在指定控件是“保留日期”还是现在。但是,当“未选中”时,日期仍然显示,尽管它显示为已禁用。对我来说,这让人分心。如果未选中的复选框的目的是表明没有日期值,为什么文本框中会出现禁用或其他日期值?在我看来,如果未选中该控件,则文本框应该为空,并且当用户真正想要“无值”时看到变暗的日期值会分散注意力。
如果用户打开复选框,那么我希望能够将默认值放入文本框中。
我正在考虑创建一个在 dateTimePicker 控件和 textBox 之间切换的用户控件,但我讨厌经历这个麻烦。
我尝试寻找 Telerik 的 DateTimePicker,但试图从该控件中获得像样的空处理功能似乎更糟糕。我很想看到一个工作示例,说明你们认为是一个用户友好的代码示例,其中包含接受空输入的 std MS 或 Telerik DateTimePicker 控件。
我研究过一些开源控件,但每次他们解决一个问题时,都会引入其他问题。
编辑:
请参阅下面我的回答。它似乎工作得很好,现在我只想让它成为每个 DateTimePicker 行为的一部分。
最佳答案
我也遇到了同样的问题。好吧,实际上我很聪明,可以理解,但我的用户遇到了问题。
我通过删除复选框并添加 2 个单选按钮来解决。现在看起来像这样:
(使用伪 UI)
O No value entered
O | 1/1/2010 |V|
当没有值(空)时检查顶部单选按钮,当有值时检查底部单选按钮。我没有隐藏或禁用底部控件,用户似乎也理解。
缺点是,它需要更多的空间。
PS:用户接下来会提示的是当组合框获得焦点时使用滚轮。
关于winforms - WinForm DateTimePicker 忧郁。那是我吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4410217/