2012-10-29 145 views
3

我正在重新編寫C#DateTimePicker (nullable)以適合我的需求,但我一直在檢測從選取時間(HH:mm, DateTimePicker.ShowUpDown = true)發生的上下事件。C# - DateTimePicker,檢測上下點擊事件

我知道OnValueChanged是在按下向上或向下按鈕時觸發的,但我已經在那裏處理了一些數據(當數字鍵入到DateTimePicker中時自動移動到下一個字段),因此I當按下這些按鈕時需要阻止ValueChanged事件,並在不同的函數中處理它。

我試圖重寫的WndProc功能,但OnValueChanged的WndProc之前調用。 OnKeyDown也在OnValueChanged後調用。

任何想法?

回答

0

那麼你可以嘗試重寫OnDropDown每當請求下拉壓延發生。

+0

如上所述,我使用ShowUpDown而不是日曆。 – user1782815

0

DateTimePicker值發生變化,則不應阻止ValueChanged事件。向上按鈕用於更改DateTimePicker值,因此按它們應提高ValueChanged事件。

考慮更改當前這個事件的處理。

BTW爲什麼你導航到下一個字段,當值改變了嗎?只需將適當的TabIndex值分配給您的控件,並允許用戶使用Tab按鈕導航到下一個字段。這是導航的常用方法。

+0

我必須用dd.MM.yyyy控制一個,用HH:mm控制另一個。進入這些日子後,我希望控制權轉移到MM部分。 TabIndex用於控件,而不是我所知道的DateTimePicker內部。 – user1782815

+0

@裏面的DateTimePicker user1782815左,右箭頭鍵用於導航 –

+0

是的,我知道這一點,但它是用戶不需要進入日期或時間的一部分後,使用箭頭導航。 我通過在UpDown按鈕上方放置一個面板來解決此問題,因爲我不需要此功能(因爲用戶可以使用控件內的箭頭鍵)。 – user1782815