سؤال

ولقد حصلت على مربع نص منضم إلى خاصية الكائن (في الواقع عدة مربعات النص) على النموذج. هذه لهو محرر للكائن. عندما أنا تحرير بعض الكائنات وتعديل القيم في واحد من مربعات النص لا أستطيع الخروج من مربع النص (لا من قبل ولا التبويب النقر على مربع نص آخر). ولكن هذا ليس هو الحال دائما - عند تحرير كائنات أخرى (من نفس النوع) أنه يعمل بشكل جيد

وإليك snipet كود:

txtValue.DataBindings.Add("Text", _SourceObject, "PlannedValue", True, DataSourceUpdateMode.OnPropertyChanged, Nothing, "c")
txtEstPlacements.DataBindings.Add("Text", _SourceObject, "EstimatedPlacementCount")
txtReference.DataBindings.Add("Text", _SourceObject, "Reference")

وأي اقتراحات؟

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

المحلول

ويبدو وكأنه مسألة التحقق من صحة البيانات. معرفة ما اذا كان لديها عناصر التحكم على النموذج خصائص CausesValidation من مجموعة إلى صواب أو خطأ.

وأيضا التحقق من الملكية AutoValidate في النموذج. وربما المقرر أن EnablePreventFocusChange (وهو الافتراضي).

وكما قد يكون الحال أن قيمة الموردة في مربع النص لا يمكن تحويلها إلى نوع من الممتلكات لا بد أن على كائن بيانات المصدر. أعتقد أن استخدام الفئة تحويل لهذا (على الرغم من أنني قد أكون مخطئا هنا).

وأنت قد ترغب في التحقق من هذه المقالة على MSDN أن يغطي WinForms عناصر التحقق من الصحة في بعض التفاصيل.

نصائح أخرى

إذا نموذج لديه AutoValidate == EnablePreventFocusChange، ثم عليك في نهاية المطاف مع التركيز عالقة في أي حقل فشل التحقق من الصحة.

لاحظ أن تعتبر المصادقة قد فشلت إذا كان هناك استثناء عند كتابة قيمة في الكائن.

وحاول وضع نقطة توقف عند نقطة دخول واضع من الممتلكات التي تم منضمة إلى السيطرة حيث يحصل عالقا المؤشر. ثم، خطوة واحدة لمعرفة ما إذا يتم رفع استثناء.

وإذا كان توقف حرائق أبدا، قد يكون استثناء التي تحدث في إطار ربط البيانات.

وعلى عكس الاعتقاد الشعبي، والإطار ربط البيانات لا تسجيل أخطاء وغيرها من المعلومات المفيدة - ويستخدم الدعم من مساحة الاسم System.Diagnostics للقيام بذلك. I ينسى التفاصيل، ولكنهم على MSDN - يجب أن تكون قادرا على عرض التشخيص في إطار الرسائل من Visual Studio بينما يتم تشغيل التطبيق الخاص بك. مفيدة جدا لاستكشاف مشكلات مع ربط البيانات.

في أجل إصلاح فشل التحقق من صحة، والذي يرجع إلى عدم قدرة ربط البيانات لتحديد DBNull.Value في textbox.text، يمكنك إضافة السطر التالي في قسم Form_Load:

TextBox1.DataBindings["Text"].NullValue = string.Empty;

ولكل مربع النص الذي تريد السماح قيمة فارغة ليتم التحقق من صحتها بشكل صحيح.

انظر مزيد من التفاصيل حول Microsoft الاتصال .

وعلى:

لا يمكن الهروب فارغة النص

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