سؤال

Microsoft DateTimePicker يظهر السيطرة المشتركة التاريخ القصيروفقا لإعدادات تحديد المواقع التي تم تكوينها. تم تكوين جهاز كمبيوتر العميل باستخدام ShortDateFormat المكونة من عامين (d/M/yy) ، لذلك يعرض DateTimePicker سنوات من رقمين:

alt text

عندما يركز المستخدم في كتلة العام من منتقي DateTime ، تشير Microsoft إلى المشكلة ، وتُظهر السنة المكونة من 4 أرقام:

alt text

ولكن بعد ذلك المستخدم ، يرغب في الدخول 1929 مع مرور عام ، الأنواع من رقم 2 من رقمين:

alt text

ثم عندما يقومون بتبادل التبويب ، فإنهم مرتبكون عندما يفسر Windows سنوات من رقمين على أنه بينهما 1930 و 2029, ، ويفترض أن يكون 2029:

alt text

لدى العميل سياسة عالمية للشركة تملي تكوين الإعدادات الإقليمية لـ Windows لمدة عامين.

لذا ، كحل ، أحتاج إلى فرض كل شيء DateTimePicker التحكم في استخدام تنسيق مخصص ، باستخدام السهل DateTime_SetFormat دقيق:

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

هذا يساعد ، بحيث الآن DateTimePicker الآن يظهر دائمًا عامًا من 4 أرقام:

alt text

المشكلة هي أنه لا يزال بإمكان المستخدم كتابة "غير صالحة"عامين من رقمين:

alt text

أي Windows لا يزال يتفسير ، وفقًا للقواعد ، في عام 2029:

alt text

أحتاج إلى منتقي وقت التاريخ لرفض سنوات من رقمين.

إذا لم يتمكن هذا من العمل ، فستضطر إلى استبدال كل datetimepicker بـ 3 مربعات تحرير:

22 6 29

حيث يمكنني تلوين أرقام غير صالحة باللون الأحمر ، وأشير إلى إدخال البيانات غير الصالح من قبل المستخدم.

كيف يمكنني منع DateTimePicker من قبول الأخطاء y2k؟

لا يوجد حل صحيح

نصائح أخرى

إذا قمت بإضافة نمط نافذة DTS_APPCANPARSE ، فيمكنك التعامل مع WM_NOTIFY: DTN_USERSTRING MESSICTION وتحليل السلسلة بنفسك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top