每当添加项目时,我都会尝试检查 DataGridView 中的每一行以避免重复。但我的代码只允许我检查我添加的第一个数据。
这是我的代码:
For Each row In BarcodePrintListGrid.Rows
If Label44.Text = row.Cells("Barcode ID").Value Then
MetroMessageBox.Show(Me, "Item Already Added", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Label47.Text = "None"
Label44.Text = "None"
Label42.Text = "None"
Label31.Text = "None"
Label40.Text = "0"
TextBox1.Clear()
Exit For
Else
BarcodePrintListGrid.Rows.Add(Label47.Text, Label44.Text, Label42.Text, Label31.Text, Label40.Text, 1)
MetroMessageBox.Show(Me, "Item Added to List", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
Label47.Text = "None"
Label44.Text = "None"
Label42.Text = "None"
Label31.Text = "None"
Label40.Text = "0"
TextBox1.Clear()
Exit For
End If
Next
您必须等到循环遍历完
DataGridView
的所有行后才能决定是否向其中添加该行。
尝试使用此代码:
Dim test As Boolean = False
For Each row In BarcodePrintListGrid.Rows
If Label44.Text = row.Cells("Barcode ID").Value Then
test=true
Exit For
End If
Next
if test=false then
BarcodePrintListGrid.Rows.Add(Label47.Text, Label44.Text, Label42.Text, Label31.Text, Label40.Text, 1)
MetroMessageBox.Show(Me, "Item Added to List", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
else
MetroMessageBox.Show(Me, "Item Already Added", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
end if
Label47.Text = "None"
Label44.Text = "None"
Label42.Text = "None"
Label31.Text = "None"
Label40.Text = "0"
TextBox1.Clear()
第一个答案中的代码帮助我完成了我正在做的工作,但万一您收到错误,因为它找不到具有您可以使用的名称的单元格: row.Cells(0).Value 按位置搜索。