0

日付 (または時刻) エディターの現在選択されている部分を特定しようとしています。PDA のナビゲーション キーが使用されている場合、カスタム アクションを提供する必要があります。特に、右ボタンを押して日付の最後の部分(年など)を選択したときに、フォーカスを次のコントロールに移動させたいと考えています。デフォルトの動作は、日付部分の循環です。

DateTimePicker の Win32 API オプション (リンク) を見てきましたが、これをサポートしていないようです。

助言がありますか?

4

1 に答える 1

0

.Net cf 日付ピッカーは PITA です。

フォーカスが日付ピッカーにあるときに、「右」ボタンのKeyUp イベントをトラップしてオーバーライドしようとしましたか? 「右」キーが押された回数を数えることができ、この方法で位置設定を偽造できます。日付ピッカーがフォーカスを受け取ったときにカウンター変数を 1 に設定し、「右」キーをインターセプトすると 1 ずつ増加します。それが「Right」キーかどうかをテストし、カウンター変数が 3 の倍数であるかどうかをテストして、デフォルトの動作が実行されないように e.Handled = true を設定します。もちろん、オーバーライド ロジックは、フォーカスを次のコントロールに設定することです。

編集:「左」キーを押してカウンター変数をデクリメントすることを忘れないでください!

カスタム オプション: 最善の策は、独自のカスタム日付コントロールを構築することだと思います。私はこれをやった。それほど難しくありません。コントロールに 3 つのテキスト ボックスを配置し、いくつかの基本的な検証を行うだけです。必要に応じて、ピッカーのカレンダー部分も引き続き使用します。

また、 OpenNetCFを根回しすることも価値があります。日付ピッカーに代わるものがあるかどうかはわかりませんが、そこにはたくさんのクラスがあります。それでも、本格的な CF 開発を行う場合は、一見の価値があります。

于 2009-11-17T04:58:28.057 に答える