你们可以帮助我如何实现这一目标吗?我希望对添加项目进行行验证。我有一个名为 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
这是我的顶点,所以我真的需要你的帮助。谢谢你们。
答案 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
希望这有帮助!