سؤال

لدي نفس رمز UI يعمل على جهاز XP English الخاص بي وعلى آلة XP اليابانية. لسبب ما - السلوك مختلف بين هذين الجهازين:

على الجهاز الياباني، يتم تشغيل حدث OneResize أثناء مكالمة OILICOMOMPOMPOND (أعتقد أنه من وظيفة Resumelayout). على الجهاز الإنجليزية لا.

لدي طريقة تجاوز onresize هذه تغيير قيم المتغيرات الخاصة بي التي حددتها. نظرا لأن المكون لم يتم تحميله بالكامل (لا يزال المحطة الطرف قيد التشغيل)، فإن هذه المتغيرات فارغة ولا تحصل على استثناء.

يمكنني إصلاح التعليمات البرمجية عن طريق التحقق من ذلك ما إذا كان المتغير فارغا أم لا، ولكن أود أن أفهم لماذا يتم استدعاءه في المقام الأول ولماذا يحدث فقط على هذا الجهاز.

أثناء بحثي عبر الشبكة، وجدت نفس المشكلة التي أرسلها شخص آخر، ولكن مع عدم وجود حل (http://social.msdn.microsoft.com/forums/en/winforms/thread/95aefae4-45d8-4ac5-a8f2-6e2142dfb631.).

هل كانت مفيدة؟

المحلول

الكشف الصحيح: أنا أعمل مع هيلا لذلك كنت قادرا على رؤية الكود. كان سبب السلوك المختلفة بسبب وجود خاصية عنصر تحكم يسمى AutoCalemode. في الفئة الأساسية للتحكم في قيمة هذه الخاصية كانت autoCalemode.font. نظرا لأن جميع آلات البحث والتطوير الخاصة بنا تعمل بنفس الإعدادات (باللغة الإنجليزية) تصرفوا بشكل صحيح ولم يحدث الخطأ هناك. التغيير إلى آلة يابانية تعني إعدادات خط مختلفة من تلك الموجودة في الآلات الإنجليزية. هذا تسبب في مشكلة. لذلك غيرنا قيمة خاصية autoCalemode إلى لا شيء وحل المشكلة. خاتمة: احذر من خاصية autoscelemode.

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