2013-06-18 14 views
5

Próbuję uzyskać indeksy wierszy na podstawie wybranych komórek w DataGridView. Jak mogę to zrobić w VB.NET?Uzyskiwanie informacji RowIndex na podstawie wybranych komórek w DataGridView

To jest to, co mam:

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 

Odpowiedz

8

Dzięki @matzone mam zorientowaliśmy się:

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 
0

Można spróbować ..

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 
+0

Dzięki za zamachem. Otrzymuję ArgumentsOutofRange Exception – alwaysVBNET

+0

@nectarines .. argh .. Zapomniałem usunąć go .. – matzone

3

nie sądzę, jestem zrozumienia pytanie. Dlaczego nie działa?

+0

Ponieważ wybieram komórki, a nie wiersze – alwaysVBNET

+0

Wybacz mi, ponieważ nigdy nie stworzyłem GridView, w którym użytkownik mógłby wybrać poszczególne komórki, ale na pewno, nawet jeśli wybrana jest konkretna komórka, właściwość SelectedRow.RowIndex (lub jeszcze lepiej, SelectedRow) jest nadal indeksem wiersza, w którym znajduje się zaznaczona komórka? –

+0

tak, to na pewno jest – alwaysVBNET

4

DGV.CurrentRow.Index

będzie działać, nawet jeśli selectionMode = CellSelect

Powiązane problemy