2009-11-17 114 views
0

我試圖確定日期(或時間)編輯器的當前選定部分。我需要在PDA上的導航鍵被使用時提供自定義操作。具體而言,我希望焦點在按下右按鈕並選擇日期的最後部分(例如年)時進入下一個控件。默認行爲是循環瀏覽日期部分。DateTimePicker中的光標/選擇位置

我已經看過DateTimePicker的Win32 API選項(link),但它似乎不支持這一點。

有什麼建議嗎?

回答

0

.net cf日期選取器是一個PITA。

當焦點在日期選擇器上時,您是否試過陷印並覆蓋KeyUp event的「右」按鈕?您可以計算按下「右鍵」的次數,並以這種方式僞造位置設置:當日期選擇器獲得焦點時,將計數器變量設置爲1,並在攔截「右鍵」時將其加1。測試以查看它是否爲「正確」鍵,並且計數器變量是三的倍數e.Handled = true以保持默認行爲不被執行。當然你的覆蓋邏輯是將焦點設置到下一個控件。

編輯:不要忘記得到減少「左」按鍵上的計數器變量!

自定義選項:我認爲你最好的選擇是建立你自己的自定義日期控件。我已經做到了。這並不難。這是一個對齊控件中的三個文本框並進行一些基本驗證的問題。如果需要,您還可以使用選取器的日曆部分。

它也是值得的根源在OpenNetCF。雖然我不確定是否會有日期選擇器的替代方案,但其中有很多類。不過,如果你認真做CF開發,那麼值得一看。

+0

CF.NET DateTimePicker是否有任何替代方案? 我會記住你的建議。當然,如果使用鍵和手寫筆的組合,它將無法正常工作。 – Muxa 2009-11-17 05:08:03

+0

我發現了一個免費的日期選擇器,它更糟。老實說,我認爲你最好的選擇是建立你自己的自定義日期控制。我已經做到了。這並不難。這是一個對齊控件中的三個文本框並進行一些基本驗證的問題。 – 2009-11-17 05:12:53