使用VB.Net验证DataGridView单元格中输入的值

使用VB.Net验证DataGridView单元格中输入的值,vb.net,datagridview,Vb.net,Datagridview,我正在使用VB.Net 2008并尝试使用某些值验证某个单元格,如: 在DataGridView1中,我想检查列1和单元格1中输入的数据是否小于10,因此我使用了以下代码 Private Sub DataGridView1_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellVali

我正在使用VB.Net 2008并尝试使用某些值验证某个单元格,如:

在DataGridView1中,我想检查列1和单元格1中输入的数据是否小于10,因此我使用了以下代码

Private Sub DataGridView1_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating

    If DataGridView1.CurrentCell.ColumnIndex = 1 Then
        If DataGridView1.Rows(e.RowIndex).Cells(1).Value < 10 Then
            DataGridView1.Rows(e.RowIndex).ErrorText = "Not Less Than 10"
            e.Cancel = True
        End If
    End If

End Sub
问题是:每次我尝试在此单元格中输入任何值时,它都不会看到任何空值,除非在我开始编辑它之前它已经有一个值,并且总是使用此值,而不管我写入了什么新值

那么,我如何验证这些单元格,使其不允许用户离开此单元格,除非它得到正确的值


注意:CellValidated工作正常,但它没有e.cancel以防止用户离开此单元格

我知道这是旧的,但为了验证实际值,需要使用DataGridView1.Rowse.RowIndex.Cells1.FormattedValue,这将为您提供修改后的值。通过使用DataGridView1.Rowse.RowIndex.Cells1.Value,您将始终获得未编辑的上一个值,如果第一次编辑单元格,您将获得看到的空值。请注意,FormattedValue仅在CellValidating方法中有效。 希望这能帮助任何路过这个问题的人^^