我有一个我试图容纳的用户请求,我能想到解释的最简单方法是使用图片说明:
基本上用户输入了大量的日期。而不是输入
他们想要键入值并移动到下一个日期部分值。虽然这看起来并不像我能想象的那样,它会增加额外的击键次数并使最终用户脱离数字键盘。我目前正在使用带有自定义格式的Telerik的Winform RadDateTimePicker:
MM/dd/yyyy hh:mm tt
但不反对更改为Winforms DateTimePicker。
有人可以为此推荐一个优雅的解决方案吗?我目前唯一可以想到的是当控件处于焦点时抓住键盘,但我觉得这可能很麻烦。
三江源
答案 0 :(得分:3)
这不是链接答案,但我必须参考Telerik文档,以允许OP根据自己的需要自定义控件。
我的理解是,您的客户需要在特定文化中键入日期和时间,避免键入分隔符。 您应该使用已经有需要掩码的maskedEditBox MM / dd / yyyy hh:mm tt 特别是你应该设置模式" s"对应于"可排序的日期时间模式(基于ISO 8601),使用当地时间"
查看Telerik文档here,根据需要设置控件和相关验证程序。 这应该可以解决你的问题。
这是空的时候的样子:
这个si显示填写时出现:
使用相关事件(我使用了radMaskedEditBox1_Leave),您仍然可以使用来自radMasketTextBox的输入的dateTimePicker:
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "dd/MM/yyyy HH:mm ss";
dateTimePicker1.Text = radMaskedEditBox1.Text;
答案 1 :(得分:3)
RadMaskedEditBox(以及分别在内部使用RadMaskedEditBox的RadDateTimeEditor)具有内置功能以选择下一部分,但是,它似乎无法正常使用此掩码,因此我将其报告为一个问题。以下是指向它的链接:issue link。您可以订阅状态更改提醒,以便在完成后收到通知。
您可以看到的是最近推出的free form date time parsing。它允许您输入“10162014”,它将被解析为“10 \ 16 \ 2014”。更多信息,此处不提供解析日期:Parsing Dates
最后一件事是使用KeyDown并手动移动选择。提供商上有API。以下是访问它的方法:
(this.radDateTimePicker1.DateTimePickerElement.TextBoxElement.Provider as MaskDateTimeProvider).SelectNextEditableItem();
我希望其中一些适合你。
答案 2 :(得分:0)
Please check below URL
小提琴网址:
1]。 http://jsfiddle.net/jensbits/3yUes/light/ 2]。 http://jsfiddle.net/LkpPJ/5/