我 VB.Net 应用程序,其中某些字段绑定到数据表。
这是我的代码:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.DxErrorProvider1 = New DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(Me.components)
Dim DT As DataTable = GetDT()
Me.TextEdit1.DataBindings.Add("EditValue", DT, "C1", True, DataSourceUpdateMode.OnValidation, "")
End Sub
Function GetDT() As DataTable
Dim DT As New DataTable
Dim i As Integer = 0
DT.Columns.Add(New DataColumn("C1", i.GetType))
Dim R As DataRow = DT.NewRow
R.Item(0) = 15
DT.Rows.Add(R)
Return DT
End Function
当用户在字段上键入错误的值时。焦点不能再移动了。
完整的代码实际上包含多个字段,我希望允许用户能够移动下一个字段,即使有错误的值。将显示一个红色图标,因此他可能希望稍后更正它。
请问有什么办法可以做到这一点吗?
谢谢。
这是解决方案:
Me.AutoValidate = Windows.Forms.AutoValidate.EnableAllowFocusChange
我在想,我想这个通过,我希望它有所帮助。
AddHandler TextEdit1.LostFocus, Sub()
If TextEdit1.ErrorText <> "Focus released" And TextEdit1.ErrorText <> "" Then
TextEdit1.DataBindings(0).DataSourceUpdateMode = DataSourceUpdateMode.Never
DxErrorProvider1.SetError(TextEdit1, "Focus released")
Else
DxErrorProvider1.SetError(TextEdit1, "")
TextEdit1.DataBindings(0).DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged
End If
End Sub
您还可以在两个 IF 段中的任何一个中添加TextEdit1.BackColor = Color.red
或TextEdit1.BackColor = Color.Empty