Vb.net DataGridView中的最后一行验证

Vb.net DataGridView中的最后一行验证,vb.net,datagridview,verification,Vb.net,Datagridview,Verification,我有这段代码来验证DataGridView中的行。它检查该行中单元格的内容是否在0到10之间,如果是11+,则将以红色突出显示 我遇到的问题是,即使所有数字都在0-10之间,该行的最后一行也会以红色突出显示。 这是一种文件结束的情况吗 在代码中,如果单元格为null,则不会发生任何事情。因此,我认为最后一行也不应对其进行任何处理(只要它是0-10) 将每行作为DataGridView1.Rows中的DataGridViewRow进行 如果不是row.Cells(“F3”)。值为DBNull.Va

我有这段代码来验证DataGridView中的行。它检查该行中单元格的内容是否在0到10之间,如果是11+,则将以红色突出显示

我遇到的问题是,即使所有数字都在0-10之间,该行的最后一行也会以红色突出显示。 这是一种文件结束的情况吗

在代码中,如果单元格为null,则不会发生任何事情。因此,我认为最后一行也不应对其进行任何处理(只要它是0-10)

将每行作为DataGridView1.Rows中的DataGridViewRow进行

如果不是row.Cells(“F3”)。值为DBNull.Value,则
将单元格编号设置为整数

如果在CellValidating事件中Integer.TryParse(row.Cells(“F3”).Value,cellNumber)和also cellNumber>=0和also cellNumber,则应检查ColumnIndex是否为所需列,而当前行是否为新行。之后,您应该检查该值是否在您的范围内

看看这个例子(我不知道什么是索引F3,所以我假设为0):

私有子DataGridView1\u CellValidating(发送方作为对象,e作为DataGridViewCellValidatingEventArgs)处理DataGridView1.CellValidating
如果e.ColumnIndex=0且也不是DataGridView1.Rows.Item(e.RowIndex.IsNewRow),则
作为字符串的Dim值=e.FormattedValue.ToString()
将数值设置为整数
使用DataGridView1.Rows.Item(e.RowIndex).Cells.Item(e.ColumnIndex).Style

如果Integer.TryParse(例如FormattedValue.ToString,numericValue)和also numericValue>=0和also numericValue,我找出了我缺少的行。。 我必须补充:

也不是行。单元格(“F11”)。值为空

拥有:

如果不是row.Cells(“F3”)。则值为DBNull.Value,也不是row.Cells(“F11”)。则值为零


你尝试过使用这个事件吗?@我没有。我的代码完成了验证整数是否不在我指定的范围内所需的工作,但由于某种原因,Datagridview中的最后一行位于else语句中,并变为高亮显示的红色。(datagridview中的最后一行为空)我将尝试这个建议。此外,F3是datagridview中的列。非常感谢。
For Each row As DataGridViewRow In DataGridView1.Rows
    If Not row.Cells("F3").Value Is DBNull.Value Then
        Dim cellNumber As Integer

        If Integer.TryParse(row.Cells("F3").Value, cellNumber) AndAlso cellNumber >= 0 AndAlso cellNumber <= 10 Then
            'All pass verification, Do nothing
        Else
            'Point out the wrong value 
            row.Cells("F3").Style.BackColor = Color.Red
        End If
    Else
        '    MessageBox.Show("Not a number!")
    End If
Next
Private Sub DataGridView1_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating
    If e.ColumnIndex = 0 AndAlso Not DataGridView1.Rows.Item(e.RowIndex).IsNewRow Then
        Dim value As String = e.FormattedValue.ToString()
        Dim numericValue As Integer

        With DataGridView1.Rows.Item(e.RowIndex).Cells.Item(e.ColumnIndex).Style
            If Integer.TryParse(e.FormattedValue.ToString, numericValue) AndAlso numericValue >= 0 AndAlso numericValue <= 10 Then
                .BackColor = Color.White
                .ForeColor = Color.Black
            Else
                .BackColor = Color.Red
                .ForeColor = Color.White
            End If
        End With
    End If
End Sub