私はいくつかのフィールドがデータテーブルにバインドされた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
ときにユーザーがフィールドに誤った値。フォーカスはもう動くことができません。
フルコードには実際に複数のフィールドが含まれていますが、誤った値があっても次のフィールドを移動できるようにしたいと考えています。赤いアイコンが表示されるので、後で修正することができます。
これを実現するにはどうすればよいですか?
ありがとうございました。ここで
両方のIFのいずれかに
TextEdit1.BackColor = Color.red
またはTextEdit1.BackColor = Color.Empty
を追加することができます。データがコミットされるのを防ぐために、関連する 'Binding'の' DataSourceUpdateMode'を 'Never'に変更しなければならないと思います。コントロールが必要な場合はコントロールのフォーカスが失われたときに検証を処理し、変更をコミットするときには 'Binding'で' WriteValue'を呼び出します。 – jmcilhinney実際に私は新しいデータをコミットしたくありません。フォーカスを別のフィールドに移動してエラーにするだけです –