vb.net中的Datagridview RowValidation

时间:2016-04-15 07:29:19

标签: vb.net datagridview

你们可以帮助我如何实现这一目标吗?我希望对添加项目进行行验证。我有一个名为 datagridview1 的datagridview,列 dgvTxtItemCode,dgvTxtItemDesc ,依此类推。我想添加一个验证,其中每当输入相同的项目代码或项目desc时,将出现一个消息框,表示它已经添加。

所以这是我的代码,

 Function isAlreadyAdded(itemCode As String, itemName As String) As Boolean
    Dim bFLAG As Boolean
    For Each r As DataGridViewRow In DataGridView1.Rows
        If r.Cells(0).Value = r.Index = itemCode AndAlso r.Index = itemName Then
            bFLAG = True
            Exit For
        End If
    Next
    Return bFLAG
End Function



  Private Sub AddDelivery_RowValidating(sender As Object, e As DataGridViewCellCancelEventArgs) Handles DataGridView1.RowValidating
    With DataGridView1
        If isAlreadyAdded(.Rows(e.RowIndex).Cells(dgvTxtItemDesc.Name).Value, e.RowIndex) Then
            MessageBox.Show("Item was already added!", "Duplicate", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            e.Cancel = True
            Exit Sub
        End If
    End With
End Sub

这是我的顶点,所以我真的需要你的帮助。谢谢你们。

1 个答案:

答案 0 :(得分:0)

尝试处理cellvalidating事件而不是rowvalidating。像这样:

Private Sub AddDelivery_RowValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles DgOperacionsArticles.CellValidating
    With DataGridView1
        If isAlreadyAdded(.Rows(e.RowIndex).Cells(dgvTxtItemDesc.Name).Value, e.RowIndex)=True Then
            MessageBox.Show("Item was already added!", "Duplicate", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            e.Cancel = True
            Exit Sub
        End If
    End With
End Sub

另外,为了确保这个工作,默认情况下将布尔值定义为False:

Dim bFLAG As Boolean = False

希望这有帮助!