質問

Microsoft's DateTimePicker 一般的な制御が示されています 短命構成されたロケール設定によると。顧客のコンピューターは、2桁の年の短命のフォームで構成されています(d/M/yy)、したがって、DateTimePickerには2桁の年が表示されます。

alt text

ユーザーがDateTimeピッカーの年ブロックにFocusを置くと、Microsoftはこの問題を指摘し、4桁の年の年を示します。

alt text

しかし、その後、ユーザーは入力したい 1929 1年として、2桁の年のタイプ:

alt text

そして、彼らがタブアウトすると、Windowsが2桁の年を間に解釈すると混乱します 19302029, 、そしてそれは2029年と想定されています:

alt text

顧客は、Windowsの地域設定が2桁の年間構成されることを指示するグローバルな企業ポリシーを導入しています。

したがって、回避策として、私はすべてを強制する必要があります DateTimePicker 便利なものを使用して、カスタム日付形式を使用するように制御する DateTime_SetFormat 大きい:

DateTime_SetFormat(hwnd_DateOfEventPicker, "d/M/yyyy");

これは役立つので、今 DateTimePicker 現在、常に4桁の年を示しています。

alt text

問題は、ユーザーが引き続き入力できることです」無効「2桁の年:

alt text

ルールによると、2029年のルールによると、どのウィンドウが停止しています。

alt text

2桁の年を拒否するには、デートタイムピッカーが必要です。

これが機能しない場合は、すべてのDateTimePickerを3つの編集ボックスに置き換えることを余儀なくされます。

22 6 29

無効な数字を赤に色付けし、ユーザーによる無効なデータ入力を指摘できます。

DateTimePickerがY2Kバグを受け入れるのを防ぐにはどうすればよいですか?

正しい解決策はありません

他のヒント

dts_appcanparseウィンドウスタイルを追加すると、wm_notify:dtn_userstringメッセージを処理し、文字列を自分で解析できます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top