所以我想在If语句中使用return,即在部分代码中返回:( 我想检查条件是否在每个DataGridView单元中都有效,因此如果条件无效,它将验证第一个值,然后它将不执行任何操作地检查第二个值。我希望那很清楚
For i As Integer = 0 To DataGridView1.RowCount - 1
' ruturn here !
If DataGridView1.Rows(i).Cells(6).Value = dt.Rows(0)(5) Then
DataGridView1.Rows(i).Cells(4).Value += 1
Else
If i = DataGridView1.RowCount - 1 Then
DataGridView1.Rows.Add(i + 1, dt.Rows(i)(0), dt.Rows(i)(1), dt.Rows(i)(2), qnt, dt.Rows(i)(4), dt.Rows(i)(5))
Else
Return 'return to scan the second row ( i = 1,2,3... etc)
End If
End If
Next
答案 0 :(得分:2)
您需要使用Continue For
而不是Return
。因此,您的解决方案如下所示:
For i As Integer = 0 To DataGridView1.RowCount - 1
If DataGridView1.Rows(i).Cells(6).Value = dt.Rows(0)(5) Then
DataGridView1.Rows(i).Cells(4).Value += 1
Else
If i = DataGridView1.RowCount - 1 Then
DataGridView1.Rows.Add(i + 1, dt.Rows(i)(0), dt.Rows(i)(1), dt.Rows(i)(2), qnt, dt.Rows(i)(4), dt.Rows(i)(5))
Else
Continue For
End If
End If
Next
使用Return
,您将退出整个Function
或Sub
。使用Continue For
,您可以直接跳至for循环中的下一项,而无需执行Continue For
下面的代码。
答案 1 :(得分:1)
删除第二个也可以完成
For i As Integer = 0 To DataGridView1.RowCount - 1
If DataGridView1.Rows(i).Cells(6).Value = dt.Rows(0)(5) Then
DataGridView1.Rows(i).Cells(4).Value += 1
Else If i = DataGridView1.RowCount - 1 Then
DataGridView1.Rows.Add(i + 1, dt.Rows(i)(0), dt.Rows(i)(1), dt.Rows(i)(2), qnt, dt.Rows(i)(4), dt.Rows(i)(5))
End If
End If
Next
虽然没有手动退出,但循环仍将继续检查i = DataGridView1.RowCount-1
“否则继续”在这里没有任何作用