问题描述
我正在使用此代码以编程方式移动行选择
For Each row In DataGridView1.Rows()
If row.Cells(0).Value.ToString().Equals(code) Then
row.Selected = True
End If
Exit For
Next
但是我面临的问题是这只会更改突出显示的行,而实际上并未选择该行。 当我尝试从选定的行中获取数据时,它提供的是前一行的数据,而不是蓝色突出显示的行。 实际上,行标题滴答类型的东西不会移动,它停留在上一行。
解决方法
您还必须设置选择的单元格:
For Each row As DataGridViewRow In DataGridView1.Rows()
If row.Cells(0).Value.ToString().Equals(code) Then
row.Selected = True
DataGridView1.CurrentCell = row.Cells(0)
Exit For
End If
Next
您的代码仅适用于第一行的原因是Exit For
在If
语句之外。如果包含它,则代码的工作原理就像是一个魅力。