DateTimePicker - 哪个子域有焦点?

时间:2013-01-25 17:08:08

标签: c# winforms datetimepicker

我有一个派生自DateTimePicker的课程。选择器控件的格式设置为DateTimePickerFormat.Custom,自定义格式字符串设置为yyyy.MM.dd HH:mm,以便以2013.01.25 21:45格式显示日期。在这里,2013是年度子字段,当用户使用鼠标光标或使用TAB键对其进行单击时,它会高亮显示。高位后,用户可以使用UP / DOWN键来增加/减少年份,或手动输入新年值。月,日,小时和分钟子字段也是如此。

对于我的申请,禁止使用某些日期或时间值。例如,请考虑以下规则:

  • 约会只能在四舍五入到最近10分钟的时间安排。例如,您可以在21:10或21:20而不是21:13安排一个。

为此,我需要知道哪个子字段目前有焦点。问题是我不知道如何确定这一点。如果我知道哪个子域有焦点,我可以在代码中设计以下规则集。

  • 如果选择了分钟子字段,并且用户按下UP键,则将时间增加10分钟。
  • 如果选择了分钟子字段,并且用户按下DOWN键,则将时间减少10分钟。
  • 如果分钟子场失去焦点,请将分钟数上下调整至最接近的10分钟。

唯一仍然存在的问题.. 我如何找到子目前关注的焦点?

注意:是的我可以在OnLeave事件中进行验证检查,但我的应用程序要求完全跳过无效的日期时间值。另外,我已经检查了here给出的解决方案。但我倾向于将活动子场作为练习。最后,如果它有用,我在Windows 7 x86上使用C#4.0。

0 个答案:

没有答案