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

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

在此处输入图像描述 基本上用户输入了大量的日期。而不是键入

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

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

MM/dd/yyyy hh:mm tt 

但不会反对更改为Winforms DateTimePicker。

谁能为此建议一个优雅的解决方案? 我目前唯一能想到的就是在控件处于焦点时捕捉按键,但我觉得这可能很麻烦。

谢谢

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

  2. 您可以看到的是最近引入的自由格式日期时间解析 。 它允许您输入“10162014”,它将被解析为“10 \ 16 \ 2014”。 更多信息此处没有解析日期: 解析日期

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

     (this.radDateTimePicker1.DateTimePickerElement.TextBoxElement.Provider as MaskDateTimeProvider).SelectNextEditableItem(); 

我希望其中一些适合你。

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

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

在这里查看Telerik文档,根据需要设置控件和相关validation器。 这应该可以解决您的问题。

这是空的时候的样子:

在此处输入图像描述

这个si显示它填写时出现:

在此处输入图像描述

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

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

Please check below URL日期时间掩码的小提琴URL:

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