Получение номера строки в DataGridView - PullRequest
6 голосов
/ 10 сентября 2009

Как вы получаете номер строки ячейки DataGridView? В частности, если пользователь выбрал одну ячейку, как вы можете получить этот номер строки? Требуется доступ к определенной ячейке в зависимости от того, что выбрал пользователь.

Я знаю, что метод RemoveAt можно использовать для удаления в фокусе, но вы не можете получить номер строки в фокусе, очевидно?

Спасибо за помощь!

Ответы [ 4 ]

17 голосов
/ 10 сентября 2009

Вы можете просто использовать RowIndex в текущей ячейке :

var row = dataGridView1.CurrentCell.RowIndex;
2 голосов
/ 09 октября 2013

отлично работает.

Private Sub DataGridView1_RowPrePaint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewRowPrePaintEventArgs) Handles DataGridView1.RowPrePaint

If e.RowIndex >= 0 Then
        Me.DataGridView1.Rows(e.RowIndex).Cells(0).Value = e.RowIndex + 1
    End If
End Sub
0 голосов
/ 04 июля 2013

Другой способ, если вам нужно отслеживать взаимодействие пользователя с DataGridView: В моем случае есть дополнительная обработка в некоторых универсальных функциях, которые используют координаты столбца и строки Me.I_SelCol и Me.I_SelRow, но я не показал это, потому что это не относится к OP.

С уважением, Rob

Private Sub I_DataGridView_CurrentCellChanged(sender As Object, e As EventArgs) Handles I_DataGridView.CurrentCellChanged

        If Me.I_DataGridView.CurrentCellAddress.X < 0 Or Me.I_DataGridView.CurrentCellAddress.Y < 0 Then Exit Sub

        ' The Windows Me.I_DataGridView object will have already deselected the current cell and selected the 
        ' new cell as per user navigation using mouse or cursor keys.  We just need to store the current
        ' co-ordinates for the currently selected cell.

        Me.I_SelCol = Me.I_DataGridView.CurrentCellAddress.X
        Me.I_SelRow = Me.I_DataGridView.CurrentCellAddress.Y

Exit Sub
0 голосов
/ 17 июня 2010

Это почти то же самое, но вы также можете использовать это решение:

var row = dataGridView1.CurrentRow.Index
...