Cyclone
Cyclone

Reputation: 18295

Getting row number in a DataGridView

How do you get row number DataGridView cell? Specifically, if a user has selected a single cell, how can you get that row number? It needs to access a particular cell based on what the user has selected.

I know that the RemoveAt method can be used to remove at the Focus, but you cannot get the row number at focus apparently?

Thanks for the help!

Upvotes: 6

Views: 88447

Answers (5)

user11982798
user11982798

Reputation: 1908

If you in event procedure of datagridview you will found "e As DataGridViewCellEventArgs" you can get row number with e.RowIndex and column number with e.ColumnIndex

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

And if you in normal procedure you can get row number like this:

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

Upvotes: 0

Renjith.R
Renjith.R

Reputation: 23

this one works fine .

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

Upvotes: 2

Rob Sherratt
Rob Sherratt

Reputation: 131

Another way if you need to track user interaction with a DataGridView: In my case there is extra processing in some generic functions that use the Me.I_SelCol and Me.I_SelRow column and row coordinates, but I haven't shown that because it's not relevant to the OP.

Best regards, 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

Upvotes: 0

lenniep
lenniep

Reputation: 739

It is nearly the same but you may also use this solution:

var row = dataGridView1.CurrentRow.Index

Upvotes: 0

Matt Hamilton
Matt Hamilton

Reputation: 204239

You can simply use RowIndex on the current cell:

var row = dataGridView1.CurrentCell.RowIndex;

Upvotes: 17

Related Questions