Получение номера строки в DataGridView

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

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

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

4 ответов


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

var row = dataGridView1.CurrentCell.RowIndex;

этот работает нормально .

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

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

var row = dataGridView1.CurrentRow.Index

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

С наилучшими пожеланиями, Роб!--2-->

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