具有特定单元格值[VB.NET]的DataGridView选择行

问题描述

我正在使用此代码以编程方式移动行选择

            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 ForIf语句之外。如果包含它,则代码的工作原理就像是一个魅力。