ErrorProvider لا يسمح حقل مربع نص تاريخ فارغ
-
22-09-2019 - |
سؤال
أنا أستخدم 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؟