在DateTimePicker中移动到数据输入的以下日期部分

时间:2014-10-22 20:58:57

标签: c# winforms telerik datetimepicker

我有一个我试图容纳的用户请求,我能想到解释的最简单方法是使用图片说明:

enter image description here基本上用户输入了大量的日期。而不是输入

MM [反斜杠(或右箭头)]
DD [反斜杠]
YYYY [反斜杠]等...

他们想要键入值并移动到下一个日期部分值。虽然这看起来并不像我能想象的那样,它会增加额外的击键次数并使最终用户脱离数字键盘。我目前正在使用带有自定义格式的Telerik的Winform RadDateTimePicker:

MM/dd/yyyy hh:mm tt

但不反对更改为Winforms DateTimePicker。

有人可以为此推荐一个优雅的解决方案吗?我目前唯一可以想到的是当控件处于焦点时抓住键盘,但我觉得这可能很麻烦。

三江源

3 个答案:

答案 0 :(得分:3)

这不是链接答案,但我必须参考Telerik文档,以允许OP根据自己的需要自定义控件。

我的理解是,您的客户需要在特定文化中键入日期和时间,避免键入分隔符。 您应该使用已经有需要掩码的maskedEditBox MM / dd / yyyy hh:mm tt 特别是你应该设置模式" s"对应于"可排序的日期时间模式(基于ISO 8601),使用当地时间"

查看Telerik文档here,根据需要设置控件和相关验证程序。 这应该可以解决你的问题。

这是空的时候的样子:

enter image description here

这个si显示填写时出现:

enter image description here

使用相关事件(我使用了radMaskedEditBox1_Leave),您仍然可以使用来自radMasketTextBox的输入的dateTimePicker:

dateTimePicker1.Format = DateTimePickerFormat.Custom;    
dateTimePicker1.CustomFormat = "dd/MM/yyyy HH:mm ss";

dateTimePicker1.Text = radMaskedEditBox1.Text;

答案 1 :(得分:3)

  1. RadMaskedEditBox(以及分别在内部使用RadMaskedEditBox的RadDateTimeEditor)具有内置功能以选择下一部分,但是,它似乎无法正常使用此掩码,因此我将其报告为一个问题。以下是指向它的链接:issue link。您可以订阅状态更改提醒,以便在完成后收到通知。

  2. 您可以看到的是最近推出的free form date time parsing。它允许您输入“10162014”,它将被解析为“10 \ 16 \ 2014”。更多信息,此处不提供解析日期:Parsing Dates

  3. 最后一件事是使用KeyDown并手动移动选择。提供商上有API。以下是访问它的方法:

    (this.radDateTimePicker1.DateTimePickerElement.TextBoxElement.Provider as MaskDateTimeProvider).SelectNextEditableItem();
    
  4. 我希望其中一些适合你。

答案 2 :(得分:0)

日期时间掩码的

Please check below URL小提琴网址:

1]。 http://jsfiddle.net/jensbits/3yUes/light/ 2]。 http://jsfiddle.net/LkpPJ/5/