C# - DateTimePicker,检测上下单击事件

时间:2012-10-29 12:06:16

标签: c# winforms datetimepicker

我正在重写C#DateTimePicker (nullable)以满足我的需求,但我一直在检测选择时间(HH:mm, DateTimePicker.ShowUpDown = true)的上下事件。

我知道按下向上或向下按钮会触发OnValueChanged,但我已经有了一些处理(当输入一个数字到DateTimePicker时自动移动到下一个字段),因此,我需要在按下这些按钮时阻止ValueChanged事件,并在不同的功能中处理它。

我正在尝试覆盖WndProc函数,但在WndProc之前调用OnValueChanged。在OnValueChanged之后也会调用OnKeyDown。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试覆盖OnDropDown,只要请求下拉日历就会出现这种情况。

答案 1 :(得分:0)

ValueChanged的值发生变化时,您不应阻止DateTimePicker事件。向上向下按钮用于更改DateTimePicker值,因此按下它们会引发ValueChanged事件。

考虑更改您对此活动的当前处理。

BTW 为什么在值更改时导航到下一个字段?只需为控件指定适当的TabIndex值,并允许用户使用Tab按钮导航到下一个字段。这是导航的常用方法。