سؤال

أنا أستخدم errorprovider في vb.net (2005) المرتبط بربط Bindingsource مرتبط بكائن مخصص قمت بإنشائه. يحتوي هذا الكائن المخصص على حقل تاريخ يحتوي على نوع بيانات "تاريخ". أنا أستخدم "مربع نص" لربط حقل التاريخ في النموذج الخاص بي. مشكلتي هي أنه عندما يفقد مربع النص محور التركيز وهو فارغ ، "لا يتم التعرف على السلسلة كخدمة صالحة" بواسطة ErrorProvider ولا يمكن تغيير التركيز إلى أي عنصر تحكم آخر في النموذج. من الجيد أن يقوم ErrorProvider بالتحقق من الإدخالات في الحقول التاريخ بشكل افتراضي (لم أقم بإعداد كائني المخصص لعرض هذا الخطأ المحدد للتاريخ) ، ولكن يجب أن يسمح بقيم فارغة. أريد أن يكون المستخدم قادرًا على الحصول على تاريخ فارغ مع عدم عرض رسالة خطأ. كيف يمكن القيام بذلك باستخدام حقل التاريخ المرتبط بمربع نص؟

أعتقد أنه يمكنني فقط تغيير نوع بيانات التاريخ إلى سلسلة في كائني المخصص ، لكنني أفضل عدم القيام بذلك. حاولت تعيين ErrorProvider على سلسلة فارغة في حدث "التحقق من التحقق" لمربع النص ، ولكن لا حظ. شكرا على أي مساعدة.

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

المحلول

تحدد خاصية Actovalidate من النموذج الذي يحتوي على عنصر التحكم السلوك عند فشل التحقق من الصحة
أعتقد أنه تم تعيينك على "EnablePreventFocusChange" ، مما يجعل من المستحيل تغيير التركيز من عنصر تحكم غير صالح

نصائح أخرى

تمكنت من ربط خاصية DATE إلى مربع نص دون التحقق من صحة من errorprovider.

Public Class Form1

        Private _P As Person

        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            _P = New Person With {.DOB = Date.Today}
            Me.TextBox1.DataBindings.Add("Text", _P, "DOB", True, DataSourceUpdateMode.OnPropertyChanged, Nothing)
    End Sub

End Class

Public Class Person

        Private _DOB As Date
            Public Property DOB() As Date
                Get
                        Return _DOB
                End Get
                Set(ByVal value As Date)
                        _DOB = value
                End Set
            End Property

End Class

لم أستطع إعادة إنشاء المشكلة التي كنت تواجهها. ربما يكون خطك الذي يختلف عن مربع النص؟ أو حدث مختلف على مربع النص هو تعيين ErrorProvider؟ أو عنصر تحكم مختلف هو تعيين errorprovider؟

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