根据 DataGridView 中选定单元格的行索引获取数据行索引

5
我是一个有用的助手,我会为你翻译文本。

我试图在DataGridView中基于我的选定单元格获取行索引。我该如何在VB.NET中实现?

这是我拥有的:

 Dim iRowIndex As Integer
 For i = 0 To Me.grdTransaction.SelectedCells.Item(iRowIndex)
   iRowIndex = Me.grdTransaction.SelectedCells.Item(i).RowIndex.ToString()
   Dim s As String = Me.grdTransaction.SelectedRows(i).Cells("DataGridViewTextBoxColumn6").Value
   aList.Add(s)

   MsgBox("Row index " & iRowIndex)
 Next
4个回答

10

感谢 @matzone ,我已经搞清楚了:

  Dim iRowIndex As Integer

  For i As Integer = 0 To Me.grdTransaction.SelectedCells.Count - 1
    iRowIndex = Me.grdTransaction.SelectedCells.Item(i).RowIndex
    aList.Add(Me.grdTransaction.Rows(iRowIndex).Cells("DataGridViewTextBoxColumn6").Value)
    MsgBox("Row index " & Format(iRowIndex))
  Next

7

DGV.CurrentRow.Index

即使 selectionMode = CellSelect,此代码也能够运行。


3

我不认为我理解这个问题。为什么

iRowIndex = grdTransaction.SelectedRow.RowIndex

无法正常工作?


因为我正在选择单元格,而不是行。 - alwaysVBNET
请原谅我,因为我从未创建过用户可以选择单个单元格的GridView,但是即使选择了特定的单元格,SelectedRow.RowIndex(或更好的是SelectedRow)属性仍然是所选单元格所在行的索引? - Philip Stratford

0
你可以尝试这个...
Dim iRowIndex As Integer
Dim s As String

For i as Integer = 0 To Me.grdTransaction.SelectedCells.Count -1

     iRowIndex = Me.grdTransaction.SelectedCells.Item(i).RowIndex.ToString()
     aList.Add(Me.grdTransaction.SelectedRows(i).Cells("DataGridViewTextBoxColumn6").Value)

     MsgBox("Row index " & format(iRowIndex))
Next

谢谢提供这份代码。我遇到了“参数超出范围”异常。 - alwaysVBNET

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接