我使用其中与结合到我已创建的自定义对象的BindingSource关联VB.Net(2005)的ErrorProvider控件。此自定义对象包含有“日期”数据类型的日期字段。我使用的是“文本框”的日期字段绑定在我的形式。我的问题是,只要文本框失去焦点,是空白的,由ErrorProvider控件显示和焦点不能改变窗体上任何其他控件“字符串为有效的DateTime无法识别”。这是很好的ErrorProvider控件验证在默认情况下日期字段中的条目(我没有设置我的自定义对象,以显示日期此特定错误),但它应该允许空值。我希望用户能够有没有错误消息显示空白日期。 如何可以在此使用绑定到一个TextBox日期字段做?

我想我可能只是更改日期数据类型在我的自定义对象的字符串,但不希望这样做。我试过ErrorProvider控件设置在“验证”事件对TextBox空字符串,但没有运气。感谢您的任何帮助。

有帮助吗?

解决方案

包含控件的形式的AutoValidate属性定义的行为,当验证失败时,点击 我认为你的被设置为“EnablePreventFocusChange”,这使得不可能将焦点从一个无效的控制来改变

其他提示

我设法日期属性的文本框从ErrorProvider控件在踢结合而不验证。我拖着一个文本框和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

我无法重现您遇到的问题。也许你行databinds文本框是不同的?或在文本框不同的事件设置ErrorProvider控件?或不同的控制被设定ErrorProvider控件?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top