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

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

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

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


person Cyclone    schedule 10.09.2009    source источник


Ответы (5)


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

var row = dataGridView1.CurrentCell.RowIndex;
person Matt Hamilton    schedule 10.09.2009

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

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
person Renjith.R    schedule 09.10.2013
comment
Также этот код необходимо поместить в событие DataGridView1_CellContentClick, и вы должны щелкнуть ячейку. [code] Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) обрабатывает DataGridView1.CellContentClick Me.Label2.Text = e.RowIndex.ToString End Sub [/code] - person R2 Builder; 14.09.2018

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

var row = dataGridView1.CurrentRow.Index
person lenniep    schedule 17.06.2010

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

С уважением, Роб

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
person Rob Sherratt    schedule 03.07.2013

Если вы в процедуре события datagridview вы найдете «e As DataGridViewCellEventArgs», вы можете получить номер строки с e.RowIndex и номер столбца с e.ColumnIndex

Private Sub myDGV_CellLeave(sender As Object, e As DataGridViewCellEventArgs) Handles myDGV.CellLeave
    Dim myRow As Integer = e.RowIndex
End Sub

И если вы в обычной процедуре, вы можете получить номер строки следующим образом:

Private Sub btnGetRow_Click(sender As Object, e As EventArgs) Handles btnGetRow.Click
    dim myRow1 as Integer = 0
    dim myRow2 as Integer = 0
    myRow1 = myDGV.CurrentCell.RowIndex
    myRow2 = myDGV.CurrentRow.Index
End Sub
person user11982798    schedule 03.09.2019