Datagridviewrow返回单元格的不正确的值
问题描述:
我有一个简单的DataGridView,并且我试图在单击按钮时获取单元格的值。当它被设置为一个变量时,它是不正确的,但是当我快速看它时它是正确的。我不明白是什么原因造成的?Datagridviewrow返回单元格的不正确的值
Private Sub btnUpdAll_Click(sender As Object, e As EventArgs) Handles btnUpdAll.Click
For Each r As DataGridViewRow In gvResults.Rows
Dim x = r.Cells(1).Value
Next
End Sub
答
正如@jmcilhinney说我被错误地宣告循环内部的变量,每次都重新设置了。 @shimrod,我想要获得每一行并更新下面每行的单个单元格。
Private Sub btnUpdAll_Click(sender As Object, e As EventArgs) Handles btnUpdAll.Click
Dim x
For Each r As DataGridViewRow In gvResults.Rows
x = r.Cells(1).Value
updateRecord(x)
Next
End Sub
答
为什么循环,如果你想要一个单元格,选择一个值。
我会用:
Private Sub btnUpdAll_Click(sender As Object, e As EventArgs) Handles btnUpdAll.Click
Dim row As DataGridViewRow = gvResults.CurrentRow
Dim x as String= row.Cells(e.ColumnIndex).Value.toString()
End Sub
或
Private Sub btnUpdAll_Click(sender As Object, e As EventArgs) Handles btnUpdAll.Click
Dim x As String = gvResults.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString()
End Sub
您正在循环所有行,因此'x'的值将在每次迭代中更改。 – jmcilhinney
另外,'x'的值不会被设置,直到你经过那个赋值,所以如果这是当前行,那么你会期望'x'包含前一行的值,而右边的表达式会给出当前行的值。 – jmcilhinney