Microsoft のDateTimePicker
共通コントロールは、構成された Locale 設定に従ってShortDateを表示します。顧客のコンピューターは 2 桁の年 ShortDateFormat ( d/M/yy
) で構成されているため、DateTimePicker には 2 桁の年が表示されます。
ユーザーが日時ピッカーの年ブロックにフォーカスを置くと、Microsoft は問題を指摘し、完全な 4 桁の年を表示します。
しかし、年として入力したいユーザーは1929
、2 桁の年を入力します。
そして、タブ アウトすると、Windows が 2 桁の年を と の間にある1930
と解釈し2029
、2029 年と見なされて混乱します。
顧客は、Windows の地域設定を 2 桁の年に構成することを規定するグローバルな企業ポリシーを導入しています。
したがって、回避策として、便利なマクロDateTimePicker
を使用して、すべてのコントロールにカスタムの日付形式を使用させる必要があります。DateTime_SetFormat
DateTime_SetFormat(hwnd_DateOfEventPicker, "d/M/yyyy");
これにより、DateTimePicker
は常に 4 桁の年を表示するようになりました。
問題は、ユーザーがまだ「無効な」2 桁の年を入力できることです。
ルールによれば、2029年としてまだ解釈されているWindowsは次のとおりです。
2 桁の年を拒否する日時ピッカーが必要です。
これが機能しない場合は、すべての DateTimePicker を 3 つの編集ボックスに置き換える必要があります。
22 6 29
無効な数字を赤く色付けし、ユーザーによる無効なデータ入力を指摘できる場所。
DateTimePicker が y2k バグを受け入れないようにするにはどうすればよいですか?